jQuery(document).ready(function () { jQuery('#mainCol .contact .btn').addClass('js'); jQuery('p.legende').prepend(splitter + ' '); handleMissing('err', 'missing'); // autoEraseInput(selecteur, valeur); }); jQuery(window).load(function () { handleRequired('required', ' ', splitter); handleAdresses(); inputFocusBlur(); }); /* This function changes fields background color on focus/blur events */ var inputFocusBlur = function () { // jQuery('input, select, textarea').blur(function () { jQuery('input, select, textarea') .on('focus', function () { jQuery(this).addClass('inputFocus'); }).on('blur', function () { jQuery(this).removeClass('inputFocus'); }); } /* adds "aster" to "required" texts before or after the "splitter" in the "baseName" scope */ ,formBaseName = typeof formBaseName != "undefined" ? formBaseName : '' ,splitter = typeof splitter != "undefined" ? splitter : '*' ,handleRequired = function (classN, splitter, aster) { // Adds class "classN" on labels whose for attr meets "contact"+required fields and don't have the "noAster" class. jQuery(':input[required]:not(.noAster)').each(function () { jQuery(this).prev('label').not('.noStyle, .required').addClass(classN); }); jQuery(':input[required]:not(.noAster).groupLabel').each(function () { jQuery(this).parent('div').prev('label').not('.noStyle, .required').addClass(classN); }); // For each .classN, adds the aster jQuery.each(jQuery('.' + classN + ':not(.noStyle, .requiredDone)'), function () { var chaine = jQuery(this).text().split(splitter) ,newChaine = '' ,i = 0; for (i; i < chaine.length; i++) { newChaine += i < (chaine.length - 1) ? chaine[i] + splitter : ''; } /* after */ jQuery(this) .html(newChaine.substr(0, newChaine.length - 1) + '' + aster + '' + chaine[chaine.length - 1]) .addClass('requiredDone'); /* before jQuery(this) .html(aster + newChaine + chaine[chaine.length - 1]) .addClass('requiredDone'); */ }); } ,handleMissing = function (errClass, missingClass) { if (jQuery('.' + errClass, jQuery('#form' + formBaseName + ' fieldset')).length > 0) { jQuery(':input[required]').prev('label').not('.noStyle').each(function () { jQuery(this).next(':input').each(function () { if (jQuery(this).val() == '') { jQuery(this).addClass(missingClass); jQuery(this).prev('label').addClass(missingClass); } }); // jQuery(this).next('input[value=""], textarea[value=""], input[type=radio]:not(:checked)').prev('label').addClass(missingClass); }); jQuery(':input[required].groupLabel').parent('div').prev('label').not('.noStyle').each(function () { jQuery(this).next('div').find(':input').each(function () { if (jQuery(this).attr('checked') == 'undefined') { jQuery(this).addClass(missingClass); jQuery(this).parent('div').prev('label').addClass(missingClass); } }); }); } } ,requiredFieldsList = new Array() ,handleAdresses = function () { if (jQuery('#formlivraison').length == 1) { if (jQuery('input[name=livraisontypeadresse]:checked').val() != 'autre') { jQuery('#formlivraison').find('.legende').hide(); } jQuery('#formlivraison label').each(function () { jQuery(this) .removeClass('required requiredDone') .find('.aster').remove(); var monLabelTxt = jQuery(this).text().trim(); monLabelTxt += ' '; jQuery(this).text(monLabelTxt); }); jQuery('#formlivraison :input[required=required]').each(function () { if (typeof jQuery(this).attr('id') != 'undefined') { requiredFieldsList[requiredFieldsList.length] = jQuery(this).attr('id'); } jQuery(this).removeAttr('required'); }); jQuery('#formlivraison input[name=livraisontypeadresse]').change(function () { if (jQuery(this).val() == 'autre') { for (var i = 0; i < requiredFieldsList.length; i++) { jQuery('#' + requiredFieldsList[i]).attr('required', 'required'); } jQuery('#formlivraison').find('.legende').slideDown(); handleRequired('required', ' ', splitter); } else { handleAdresses(); } }); } }