/** * file encoding must be UTF-8 !! **/ var domainsSelect = document.getElementById( 'id_domain_select' ); if ( domainsSelect ) { domainsSelect.onchange = function() { var dpDiv = document.getElementById('domainPasswordDiv'); dpDiv.style.display = signUpDomainsFree[domainsSelect.value] ? 'block' : 'none'; } } function showErrorReport( str, altsHide ) { $('alt_tr').style.display = altsHide ? 'none' : 'block'; $('good_reports').style.display = 'none'; $('er_report').className = 'err_report emailAltError'; $('er_report').innerHTML = str; $('error_reports').style.display = 'block'; $('emailBlock').className = 'registr'; } function showGoodReport( str ) { $('alt_tr').style.display = 'none'; $('error_reports').style.display = 'none'; $('g_report').innerHTML = str; $('good_reports').style.display = 'block'; $('emailBlock').className = 'registr emailBlock'; } var userInputLogin = ''; var userInputDomain = ''; var userInput = false; function userEvent() { userInput = $F('rl') != ''; } function translit( str ) { str = str.toLocaleLowerCase(); str = str.replace( new RegExp('^[^a-zа-я]+'), ''); str = str.replace( new RegExp('[^a-zа-я0-9]+','g'), ''); if ( !str ) return ''; var translator = new Object(); translator['ц'] = 'ts'; translator['ч'] = 'ch'; translator['ш'] = 'sh'; translator['щ'] = 'shh'; translator['ъ'] = 'i'; translator['ы'] = 'y'; translator['ь'] = 'i'; translator['э'] = 'e'; translator['ю'] = 'yu'; translator['я'] = 'ya'; translator['а'] = 'a'; translator['б'] = 'b'; translator['в'] = 'v'; translator['г'] = 'g'; translator['д'] = 'd'; translator['е'] = 'e'; translator['ё'] = 'jo'; translator['ж'] = 'zh'; translator['з'] = 'z'; translator['и'] = 'i'; translator['й'] = 'j'; translator['к'] = 'k'; translator['л'] = 'l'; translator['м'] = 'm'; translator['н'] = 'n'; translator['о'] = 'o'; translator['п'] = 'p'; translator['р'] = 'r'; translator['с'] = 's'; translator['т'] = 't'; translator['у'] = 'u'; translator['ф'] = 'f'; translator['х'] = 'h'; var trLogin = ''; for( var i = 0; i < str.length; i++) { var chr = str.charAt(i); trLogin += translator[ chr ] ? translator[ chr ] : chr; } return trLogin; } function offerEmail() { var email = $F('rl'); if ( userInput && email != '' ) return; var fn = $F('fn') ? translit( $F('fn') ) : ''; var sn = $F('sn') ? translit( $F('sn') ) : ''; if ( !fn && !sn ) return; var newEmail = fn; if ( fn && sn ) newEmail += '.'; newEmail += sn; //truncate var maxLen = 20; if(newEmail.length > maxLen) { if(fn && sn) { sn = sn.substr(0, maxLen-2); newEmail = fn.charAt(0)+'.'+sn; } else { newEmail = newEmail.substr(0, maxLen); } } if ( !newEmail ) return; $('rl').value = newEmail; } function fillEmail( i ) { var uid = $('alt_' + i); if ( !uid ) return; uid = uid.value; if ( !uid ) { $('rl').value = userInputLogin; if ( !userInputDomain ) userInputDomain = 'pochta.ru'; for( var i = 0; i < domainsSelect.options.length; i++ ) { if ( domainsSelect.options[i].value == userInputDomain) { domainsSelect.options[i].selected = true; } else domainsSelect.options[i].selected = false; } return; } uid = uid.split('@'); if ( !uid[0] || !uid[1] ) return; var iSelected = -1; for( var i = 0; i < domainsSelect.options.length; i++ ) { if ( uid[1] == domainsSelect.options[i].value ) { iSelected = i; break; } } if ( iSelected < 0 ) return if ( !userInputLogin ) userInputLogin = $('rl').value; if ( !userInputDomain ) userInputDomain = domainsSelect.value; $('rl').value = uid[0]; for( var i = 0; i < domainsSelect.options.length; i++ ) { if ( i != iSelected ) domainsSelect.options[i].selected = false; else domainsSelect.options[i].selected = true; } } function checkEmail() { userInputLogin = $F('rl'); userInputDomain = domainsSelect.value; var altCaptchaValue = $('altCaptchaValue'); var altCaptchaId = $('altCaptchaId'); altCaptchaValue = altCaptchaValue.value ? altCaptchaValue.value : ''; altCaptchaId = altCaptchaId.value ? altCaptchaId.value : ''; if ( $('altCaptchaBlock').style.display == 'block' && $F('altCaptchaValue') == '' ) { showErrorReport( rndImgError11, true ); return; } var login = $F('rl'); if ( login == '' ) { showErrorReport( emailError1, true ); return; } // check correct email if ( ( login.length > 1 && !login.match(/^[a-z0-9]{1}[a-z0-9\.]*[a-z0-9]$/) ) || ( login.length == 1 && !login.match(/^[a-z0-9]$/) ) ) { showErrorReport( emailError2, true ); return; } new Ajax.Request( checkEmailUrl, { method: 'post', parameters: { login: $F('rl'), domain: domainsSelect.value, first_name: $F('fn'), second_name: $F('sn'), newmail: $F('newmail'), domain_pass: $F('domain_pass'), alt_captcha: altCaptchaValue, alt_captcha_id: altCaptchaId }, onSuccess: function(tr) { var altCaptchaHeaderId = tr.getHeader('alt_captcha_id'); if ( altCaptchaHeaderId ) { $('altCaptcha').src = ShowAltCaptchaUrl + '&alt_captcha_id=' + altCaptchaHeaderId; $('altCaptchaId').value = altCaptchaHeaderId; $('altCaptchaValue').value = ''; $('altCaptchaBlock').style.display = 'block'; } else { $('altCaptchaBlock').style.display = 'none'; $('altCaptchaId').value = ''; $('altCaptchaValue').value = ''; } var resultHeader = tr.getHeader('ajax_result'); switch( tr.getHeader('ajax_result') ) { case 'error': showErrorReport( tr.responseText, true ); $('e_alt').innerHTML = ''; break; case 'alt_emails': var altEmails = tr.responseText.evalJSON(); var strAlts = '
'; strAlts += '
'; for( var i = 0; i < altEmails.length; i++ ) { if ( i && i != 2) strAlts += '
'; if ( i == 2) strAlts += '
'; strAlts += ''; } strAlts += '
' $('e_alt').innerHTML = strAlts; var str = emailError51; showErrorReport( str.replace('%s', $F('rl') + '@' + domainsSelect.value ), false ); break; case 'success': showGoodReport( RegisterLoginFree ); $('e_alt').innerHTML = ''; break; } } }); } function checkCorrectField() { var rl = $('rl').value; var e_alt = $('e_alt'); var msg = ""; var chk_rl = rl.replace(/^[^0-9a-z]/i, ''); chk_rl = chk_rl.replace(/[\@]+/i, '_'); //chk_rl = chk_rl.replace(/[^0-9a-z\.\-\_]+/ig, ''); chk_rl = chk_rl.replace(/[^0-9a-z\.]+/ig, ''); chk_rl = chk_rl.replace(/[^0-9a-z]$/i, ''); if ( ( rl.length > 32 || chk_rl.length!=rl.length ) && !e_alt ) { msg = msg + incorrectEmail + '\n'; } var pass1 = $('p1').value; var pass2 = $('p2').value; if (pass1 != pass2) { msg = msg + notEqualPass + '\n'; } if (pass1.length < 6 || pass1.length > 32) { msg = msg + wrongPassLen + '\n'; } if (msg != '') { alert(msg); return false; } else { // default if ( !$F('bth_send') ) { $('bth_add_send').value = 1; } $('bt_send').disabled = true; $('bt_add_send').disabled = true; return true; } } function captchaRefresh( id ) { new Ajax.Request( baseUrl+'/refresh-captcha/?id='+id, { method: 'post', parameters: {}, onSuccess: function(tr) { var captchaId = tr.responseText; if ( !captchaId ) return; $('mainCaptcha').src = baseUrl + '/show-captcha/?id='+id+'&captcha_id='+captchaId; $('captchaIdHidden').value = captchaId; } }); return false; } var passInfoObj, passBarObj; //9 //19 //28 //35 var passKeyboard = '1234567890qwertyuiopasdfghjklzxcvbnm'; var passColors = new Array( '#676767', '#aa0033', '#155DA9', '#008000' ); function checkPassComplication( pass ) { if ( !passInfoObj ) { passInfoObj = document.getElementById('passComplication'); } var passLen = pass.length; // wrong pass if ( passLen == 0 ) { drawBar( 0, passInfo[0] ); return; } if ( passLen < 6 ) { drawBar( 0, passInfo[1] ); return; } if ( !pass.match(/^[0-9A-Za-z]+$/) ) { drawBar( 0, passInfo[2] ); return; } var decMatch = pass.match(/[0-9]+/); var litMatch = pass.match(/[a-z]+/); var ucMatch = pass.match(/[A-Z]+/); var koef = 1; if ( decMatch && litMatch && ucMatch ) { koef = 3; } else if ( (decMatch && litMatch) || (litMatch && ucMatch) || (decMatch && ucMatch) ) { koef = 2; } var keyboardSum = 0; for ( var i=1; i < passLen; i++ ) { var ni = getXYKeyboard( pass.charAt(i-1).toLocaleLowerCase() ); var nj = getXYKeyboard( pass.charAt(i).toLocaleLowerCase() ); keyboardSum += Math.sqrt( Math.pow( nj.x - ni.x, 2 ) + Math.pow( nj.y - ni.y, 2 ) ); } var alfSum = 0; for ( var i=1; i < passLen; i++ ) { alfSum += Math.abs( pass.charCodeAt(i) - pass.charCodeAt(i-1) ); } var res = Math.min( keyboardSum, alfSum) * koef; if ( res >= 50 ) { // complicated pass drawBar( 3 ); } else if ( res >= 15 ) { // good pass drawBar( 2 ); } else { // simple pass drawBar( 1 ); } } function drawBar( c, text ) { if ( !passInfoObj ) { passInfoObj = document.getElementById('passComplication'); } if ( !passBarObj ) { passBarObj = document.getElementById('passBar'); } passBarObj.style.width = (c*73) + 'px'; passBarObj.style.display = c ? 'block' : 'none'; passBarObj.style.backgroundColor = passColors[c]; passInfoObj.style.color = passColors[c]; passInfoObj.innerHTML = text ? text : passInfo[c + 2]; } function getXYKeyboard( ch ) { var res = {}; var n = passKeyboard.indexOf( ch ); if ( n == -1 ) return res; var yIndexes = new Array( 9, 19, 28, 35 ); for( var i=0; i<4; i++ ) { if ( n > yIndexes[i] ) continue; res.x = n - ( i>0 ? yIndexes[i-1] : 0 ); res.y = i; break; } return res; }