/* Registration scripts */ function buildValidation(){ $('.line').each(function(){ var obj = $(this); if(obj.children('.icons').length > 0 ) { var type = obj.attr('type'); var allow = obj.attr('allowed'); var twin = obj.attr('hasTwin'); var depsWho = obj.attr('dependsWho'); var canBeEmpty = obj.attr('canBeEmpty'); switch(type) { case 'radio' : obj.children('.icons').children('.field_empty').hide(); obj.children('.icons').children('.field_ok').show(); bindHoverHelp(obj.children('.value').children('input:radio')); bindClickOk(obj.children('.value').children('input:radio')); break; case 'captcha' : bindHoverHelp(obj.children('.value').children('input:text')); bindFocusAndBlurHelp(obj.children('.value').children('input:text')); break; case 'input' : bindHoverHelp(obj.children('.value').children('input:text')); bindFocusAndBlurHelp(obj.children('.value').children('input:text')); break; case 'password': bindHoverHelp(obj.children('.value').children('input:password')); bindFocusAndBlurHelp(obj.children('.value').children('input:password')); break; case 'date' : bindHoverHelp(obj.children('.value').children('input:text')); createPicker(obj.children('.value').children('input:text')); break; case 'select' : if(obj.children('.value').children('select').val()) { obj.children('.icons').children('.field_empty').hide(); obj.children('.icons').children('.field_ok').show(); } bindHoverHelp(obj.children('.value').children('select')); bindFocusAndBlurHelp(obj.children('.value').children('select')); //bindClickOk(obj.children('.value').children('select')); bindOnChange(obj.children('.value').children('select')); break; case 'check' : bindClickOk(obj.children('.value').children('input:checkbox')); break; } if (allow != undefined) { switch(allow) { case 'alpha' : obj.alpha({allow:" ",ichars:"'´ç¡!º\\/*-_{}[]"}); break; case 'alphanumeric': obj.alpha({allow:" ,.",ichars:"'´ç¡!º\\/*-_{}[]"}); break; case 'email' : obj.alphanumeric({allow:"@._-",ichars:",'´ç¡!º\\/*-_,ç{}[]"}); break; case 'numeric' : obj.numeric(); break; case 'date' : obj.numeric({allow:'/'}); break; case 'phone' : obj.numeric({allow:'()-+*'}); break; case 'alias' : obj.alphanumeric({ichars:"'´ç¡!º\\/* @,.¨ñ;:`Ñ"}); break; case 'password': obj.alphanumeric({ichars:" .,*"}); break; } } if (twin != undefined) { bindTwinKeyDown(obj.children('.value').children('input:text,input:password'), twin); } if (depsWho != undefined){ bindValidationOnDepend(obj.children('.value').children('input:text,input:password'), depsWho); } if(canBeEmpty != undefined) obj.children('.value').children('input:text, select').attr('canBeEmpty','true'); } }); } function bindValidationOnDepend(obj, depsWho){ var customValidator = obj.parent().parent().children('.error_text').children('.error_validate').attr('customValidation'); if ((customValidator != undefined)) { obj.keyup(function(){ if (window[customValidator](obj.val())) { $('#'+depsWho).removeAttr('disabled'); } else { $('#'+depsWho).attr('disabled', 'disabled'); } }); } } function bindTwinKeyDown(obj, twin) { var twin = $('#'+twin); obj.keyup(function(){ if (twin.parent().parent().children('.icons').children('.field_empty:visible').length <= 0) { validateField(twin); } }); } function bindOnChange(obj) { obj.unbind('change').bind('change', function(){ if (obj.parent().parent().children('.error_text').children('div:visible').length > 0) { obj.parent().parent().children('.error_text').children('div').hide(); obj.parent().parent().children('.error_text').fadeOut('fast'); } if (obj.val() != '') { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } else { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); obj.parent().parent().children('.error_text').children('.error_empty').show(); obj.parent().parent().children('.error_text').fadeIn('fast'); } }); } function bindClickOk(obj) { obj.click(function(){ if (obj.parent().parent().children('.error_text').children('div:visible').length > 0) { obj.parent().parent().children('.error_text').children('div').hide(); obj.parent().parent().children('.error_text').fadeOut('fast'); } if (obj.parent().parent().children('.icons').children().length > 0 ){ if (obj.attr('type') != 'checkbox') { if (obj.val() != '') { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } else { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); obj.parent().parent().children('.error_text').children('.error_empty').show(); obj.parent().parent().children('.error_text').fadeIn('fast'); } } else { if (obj.attr('checked')) { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } else { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); obj.parent().parent().children('.error_text').children('.error_empty').show(); obj.parent().parent().children('.error_text').fadeIn('fast'); } } } }); } function createPicker(selector){ selector.datepicker({ changeMonth : true, changeYear : true, maxDate : "-18Y", yearRange : '1900:-18', beforeShow : function(year, month, inst) { var obj = $(this); var firstFocus = $(this).attr('firstFocus'); if (firstFocus == 'true' && (obj.parent().parent().children('.error_text').children('div:visible').length > 0)) { obj.parent().parent().children('.error_text').fadeOut('fast', function(){ obj.parent().parent().children('.error_text').children().hide(); obj.attr('focused', 'true'); obj.attr('firstFocus', 'true'); obj.parent().parent().children('.help_text').fadeIn('fast'); obj.parent().parent().children('.icons').children('.field_empty').show(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); if (obj.parent().parent().children('.special_text').length > 0) obj.parent().parent().children('.special_text').hide(); }); } else { $(this).attr('focused', 'true'); $(this).attr('firstFocus', 'true'); $(this).parent().parent().children('.help_text').fadeIn('fast'); if (obj.parent().parent().children('.special_text').length > 0) obj.parent().parent().children('.special_text').hide(); } }, onClose : function(dateText, inst) { var obj = $(this); $(this).attr('focused', 'false'); $(this).parent().parent().children('.help_text').fadeOut('fast', function(){ var firstFocus = obj.attr('firstFocus'); if (firstFocus == 'true') { if (obj.val() == '' && (obj.parent().parent().children('.error_text').children().length > 0)) { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); obj.parent().parent().children('.error_text').children('.error_empty').show(); obj.parent().parent().children('.error_text').fadeIn('fast'); } else { if (obj.parent().parent().children('.icons').children().length > 0 ){ obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } } } }); } }); } function bindHoverHelp(selector){ selector.hover( function(){ if (($(this).parent().parent().children('.error_text').children('div:visible').length <= 0)) { $(this).parent().parent().children('.help_text').fadeIn('fast'); } if ($(this).parent().parent().children('.special_text').length > 0) $(this).parent().parent().children('.special_text').hide(); }, function(){ if (($(this).parent().parent().children('.error_text').children('div:visible').length <= 0)) { if (($(this).attr('focused') == undefined) || ($(this).attr('focused') == 'false')) { $(this).parent().parent().children('.help_text').fadeOut('fast'); } } } ); } function bindFocusAndBlurHelp(selector) { selector.focus(function(){ var obj = $(this); var firstFocus = $(this).attr('firstFocus'); if (firstFocus == 'true' && (obj.parent().parent().children('.error_text').children('div:visible').length > 0)) { obj.parent().parent().children('.error_text').fadeOut('fast', function(){ obj.parent().parent().children('.error_text').children().hide(); obj.attr('focused', 'true'); obj.attr('firstFocus', 'true'); obj.parent().parent().children('.help_text').fadeIn('fast'); obj.parent().parent().children('.icons').children('.field_empty').show(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); if (obj.parent().parent().children('.special_text').length > 0) obj.parent().parent().children('.special_text').hide(); }); } else { $(this).attr('focused', 'true'); $(this).attr('firstFocus', 'true'); $(this).parent().parent().children('.help_text').fadeIn('fast'); if (obj.parent().parent().children('.special_text').length > 0) obj.parent().parent().children('.special_text').hide(); } }); selector.blur(function(){ var obj = $(this); $(this).attr('focused', 'false'); $(this).parent().parent().children('.help_text').fadeOut('fast', function(){ validateField(obj); }); }); } function validateField(obj){ var firstFocus = obj.attr('firstFocus'); var canBeEmpty = obj.attr('canBeEmpty'); if (firstFocus == 'true') { if ( (obj.val() == '' && canBeEmpty!='true') && (obj.parent().parent().children('.error_text').children().length > 0)) { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); obj.parent().parent().children('.error_text').children('.error_empty').show(); obj.parent().parent().children('.error_text').fadeIn('fast'); } else { if (obj.parent().parent().children('.icons').children().length > 0 ){ if (obj.parent().parent().children('.error_text').children('.error_email').length > 0) { if(validateEmail(obj.val())) { if (obj.parent().parent().children('.error_text').children('.error_twin').length > 0) { var twin = obj.parent().parent().children('.error_text').children('.error_twin').attr('twin'); if ($('#'+twin).val() != obj.val()) { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.error_text').children('.error_twin').show(); obj.parent().parent().children('.error_text').fadeIn('fast'); } else { if (obj.parent().parent().children('.error_text').children('.error_twin:visible').length > 0) { obj.parent().parent().children('.error_text').fadeOut('fast', function(){ obj.parent().parent().children('.error_text').children('.error_twin').hide(); }); } obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } } else { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } } else { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.error_text').children('.error_email').show(); obj.parent().parent().children('.error_text').fadeIn('fast'); } } else { if (obj.parent().parent().children('.error_text').children('.error_twin').length > 0) { var twin = obj.parent().parent().children('.error_text').children('.error_twin').attr('twin'); if ($('#'+twin).val() != obj.val()) { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.error_text').children('.error_twin').show(); obj.parent().parent().children('.error_text').fadeIn('fast'); } else { if (obj.parent().parent().children('.error_text').children('.error_twin:visible').length > 0) { obj.parent().parent().children('.error_text').fadeOut('fast', function(){ obj.parent().parent().children('.error_text').children('.error_twin').hide(); }); } obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } } else { if (obj.parent().parent().children('.error_text').children('.error_validate').length > 0) { var customValidator = obj.parent().parent().children('.error_text').children('.error_validate').attr('customValidation'); if ((customValidator != undefined)) { if (window[customValidator](obj.val())) { if (obj.parent().parent().children('.error_text').children('.error_validate:visible').length > 0) { obj.parent().parent().children('.error_text').fadeOut('fast', function(){ obj.parent().parent().children('.error_text').children('.error_validate').hide(); }); } obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } else { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.error_text').children('.error_validate').show(); obj.parent().parent().children('.error_text').fadeIn('fast'); } } else { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } } else { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_error').hide(); obj.parent().parent().children('.icons').children('.field_ok').show(); } } } } } } // Check depends var depWho = obj.parent().parent().attr('dependsWho'); if (depWho != undefined) { if (obj.parent().parent().children('.icons').children('.field_ok:visible').length > 0) { $('#'+depWho).removeAttr('disabled'); } else { $('#'+depWho).attr('disabled', 'disabled'); } } } function showFieldMessages(field, state){ var line = $('#'+field).parent().parent(); line.children('.value').children('input, select').attr('firstFocus', 'true'); if (state == 'ok') { line.children('.icons').children('.field_ok').show(); line.children('.icons').children('.field_empty').hide(); } else { if (state == 'empty') { line.children('.icons').children('.field_error').show(); line.children('.icons').children('.field_ok').hide(); line.children('.icons').children('.field_empty').hide(); line.children('.error_text').children('.error_empty').show(); } else if (state == 'validate') { line.children('.icons').children('.field_error').show(); line.children('.icons').children('.field_ok').hide(); line.children('.icons').children('.field_empty').hide(); line.children('.error_text').children('.error_validate').show(); } else if (state== 'twin') { line.children('.icons').children('.field_error').show(); line.children('.icons').children('.field_ok').hide(); line.children('.icons').children('.field_empty').hide(); line.children('.error_text').children('.error_twin').show(); } else if (state == 'email') { line.children('.icons').children('.field_error').show(); line.children('.icons').children('.field_ok').hide(); line.children('.icons').children('.field_empty').hide(); line.children('.error_text').children('.error_email').show(); } else if (state == 'special') { line.children('.icons').children('.field_error').show(); line.children('.icons').children('.field_ok').hide(); line.children('.icons').children('.field_empty').hide(); line.children('.error_text').children('.error_special').show(); } line.children('.error_text').show(); } } function validatePasswordFromAlias(){ var usr = $('#username').val(); var psw = $('#password'); if (psw.parent().parent().children('.icons').children('.field_empty:visible').length <= 0) { validateField(psw); } } function validatePassword(str){ if(str.length < 5) { return false; } else { if (str == $('#username').val()) return false; else return true; } } function validateAlias(str){ if(str.length < 3) { return false; } else { var letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; if(letters.indexOf(str.charAt(0).toUpperCase()) > -1) return true; else return false; } } function checkAlias(){ var alias = $('#username').val(); $.ajax({ // Configuration type : "POST", url : '/affiliates_registration/aliasCheck/', data : {'alias':alias}, cache : false, // Before sending request beforeSend : function(){ $('#alias_check_show').hide(); $('#alias_check_hide').show(); }, // Successful success : function(response) { $('#alias_check_show').show(); $('#alias_check_show').attr('disabled', 'disabled'); $('#alias_check_hide').hide(); response = toJSon(response); var obj = $('#username'); if(response['resp'] == 'ok') { $('#alias_special_text').show(); } else { if (obj.parent().parent().children('.help_text:visible').length > 0) { obj.parent().parent().children('.help_text').fadeOut('fast', function(){ obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); if(response['resp'] == 'empty') { obj.parent().parent().children('.error_text').children('.error_empty').show(); } else if(response['resp'] == 'special') { obj.parent().parent().children('.error_text').children('.error_special').show(); } obj.parent().parent().children('.error_text').fadeIn('fast'); }); } else { obj.parent().parent().children('.icons').children('.field_empty').hide(); obj.parent().parent().children('.icons').children('.field_ok').hide(); obj.parent().parent().children('.icons').children('.field_error').show(); if(response['resp'] == 'empty') { obj.parent().parent().children('.error_text').children('.error_empty').show(); } else if(response['resp'] == 'special') { obj.parent().parent().children('.error_text').children('.error_special').show(); } obj.parent().parent().children('.error_text').fadeIn('fast'); } } } }); } function validateEmail(email) { var re = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|co.uk|nl)\b/; return email.match(re) }