$(document).ready(function() { WhoisWhisperer.init(); }); WhoisWhisperer = new Object(); WhoisWhisperer.translate = { order : 'volná / objednat', transfer : 'převod', runParking : 'zprovoznit hosting', onlyServices : 'objednat hosting', canNot : 'nelze objednat', error : 'chyba', checkEurope : 'Zobrazit další evropské domény', checkWorld : 'Zobrazit i ostatní domény', clickToBuy : 'Kliknutím pokračujte v objednávce', changeTariff : 'Změnu tarifu provedete v klientské sekci', checking : 'ověřuje se', onWebhosting : 'Vedena u hostingu %s' } WhoisWhisperer.products = {}; WhoisWhisperer.orderLink = '/cs/order'; WhoisWhisperer.extraGtmEvent = {}; // Prodleva mezi stisknutim klavesy a spustenim naseptavace v sekundach WhoisWhisperer.timeout = 3; WhoisWhisperer.additivePostMap = {}; WhoisWhisperer.keepHiden = false; WhoisWhisperer.marketingGTMSend = false; WhoisWhisperer.lastValue = ''; WhoisWhisperer.maxsize = 75; WhoisWhisperer.tlds = Array(); WhoisWhisperer.tlds.cz = Array('cz') WhoisWhisperer.tlds.eu = Array('eu') WhoisWhisperer.tlds.com = Array('com') WhoisWhisperer.tlds.base = Array( 'co.cz', 'org', 'net', 'biz', 'info' ); WhoisWhisperer.tlds.otherEurope = Array( 'pl', 'at', 'be', 'dk', 'lv', 'li', 'lt', 'ro', 'si', 'es', 'se', 'ch', 'co.at', 'co.uk', 'org.uk', 'me.uk' ); WhoisWhisperer.tlds.otherWorld = Array( 'as', 'com.do', 'fm', 'co.za', 'tw', 'to', 'com.tr', 'com.ua', 'ua', 'com.vn', 'net.vn', 'org.vn', 'vn', 'ru', 'jobs', 'mobi', 'name', 'tel', 'travel', 'in', 'de.com', 'eu.com', 'gb.com', 'gb.net', 'hu.com', 'me', 'no.com', 'ru.com', 'se.com', 'se.net', 'uk.com', 'uk.net', 'qc.com', 'qc.com', 'br.com', 'bz', 'uy.com', 'ae.org', 'asia', 'cn', 'cn.com', 'co.in', 'jpn.com', 'kr.com', 'sa.com', 'cc', 'tv', 'ws', 'za.com', 'mn', 'net.in', 'org.in', 'gen.in', 'ind.in', 'firm.in' ); WhoisWhisperer.init = function() { if($('.whois_whisperer').get(0) == undefined) { return; } var elementWithWhisperer = $('.whois_whisperer'); elementWithWhisperer.attr('autocomplete','off'); elementWithWhisperer.attr('maxlength', WhoisWhisperer.maxsize); var offsetRight = $(window).width() - elementWithWhisperer.offset().left - elementWithWhisperer.outerWidth() + 2 ; var mytop = elementWithWhisperer.offset().top + elementWithWhisperer.height() + 7 ; var mystyle = ($(window).width() - elementWithWhisperer.offset().left) > ($(window).width() / 2) ? 'left: '+elementWithWhisperer.offset().left+'px;' : 'right: '+offsetRight+'px;' ; $('body').append('' +'
' +'
' +'
' +'
' +'
' ); elementWithWhisperer.keyup(function(event_of_key) { if(event_of_key.which != 13){ WhoisWhisperer.main(this); } }); elementWithWhisperer.focus(function() { WhoisWhisperer.main(this); }); elementWithWhisperer.blur(function() { setTimeout(function() { if($('.whois_whisperer:focus').length) { return; } WhoisWhisperer.hideBox(); }, 500); }); } WhoisWhisperer.main = function(element) { clearTimeout(this.clearTimeout); var elementName = $(element).attr('data-whois-whisperer-name'); var mytop = $(element).offset().top + $(element).height(); $('#whois_whisperer_box').css('top', mytop + 'px'); this.clearTimeout = setTimeout(function() { var value = element.value; if((value.length > 2)&&(value.length < WhoisWhisperer.maxsize)) { if( ! WhoisWhisperer.marketingGTMSend){ WhoisWhisperer.marketingGTMSend = true; } value = value.replace(/\s/g,''); var html = ''; if(value != WhoisWhisperer.lastValue) { WhoisWhisperer.lastValue = value; value = WhoisWhisperer.repair(value); html += '' +'' +' ' +' '; for(key in WhoisWhisperer.tlds.cz) { html += WhoisWhisperer.renderDomainRow( value+'.'+WhoisWhisperer.tlds.cz[key], 'cz', false, elementName, WhoisWhisperer.tlds.cz[key] ); } for(key in WhoisWhisperer.tlds.eu) { html += WhoisWhisperer.renderDomainRow( value+'.'+WhoisWhisperer.tlds.eu[key], 'eu', false, elementName, WhoisWhisperer.tlds.eu[key] ); } for(key in WhoisWhisperer.tlds.com) { html += WhoisWhisperer.renderDomainRow( value+'.'+WhoisWhisperer.tlds.com[key], 'com', false, elementName, WhoisWhisperer.tlds.com[key] ); } html += '' +'
'; html += '' +' ' +' ' +' '; for(key in WhoisWhisperer.tlds.base) { html += WhoisWhisperer.renderDomainRow( value+'.'+WhoisWhisperer.tlds.base[key], 'base', false, elementName, WhoisWhisperer.tlds.base[key] ); } html += '' +'
' +' '; html += '' + '
' + '' ; for(key in WhoisWhisperer.tlds.otherEurope) { html += WhoisWhisperer.renderDomainRow( value+'.'+WhoisWhisperer.tlds.otherEurope[key], 'europe', true, elementName, WhoisWhisperer.tlds.otherEurope[key] ); } html += '' +'
' +'
' +'' ; for(key in WhoisWhisperer.tlds.otherWorld) { html += WhoisWhisperer.renderDomainRow( value+'.'+WhoisWhisperer.tlds.otherWorld[key], 'world', true, elementName, WhoisWhisperer.tlds.otherWorld[key] ); } html += '' +'
' +'' +'' +'' +' ' +'
' +' '+WhoisWhisperer.translate.checkEurope+'' +'
' +' ' +' ' +'
' +' '+WhoisWhisperer.translate.checkWorld+'' +'
' +' ' +'' ; $('#whois_whisperer_table').html(html); for(key in WhoisWhisperer.tlds.cz) { WhoisWhisperer.check(value, WhoisWhisperer.tlds.cz[key]); } for(key in WhoisWhisperer.tlds.eu) { WhoisWhisperer.check(value, WhoisWhisperer.tlds.eu[key]); } for(key in WhoisWhisperer.tlds.com) { WhoisWhisperer.check(value, WhoisWhisperer.tlds.com[key]); } for(key in WhoisWhisperer.tlds.base) { WhoisWhisperer.check(value, WhoisWhisperer.tlds.base[key]); } } if( ! WhoisWhisperer.keepHiden){ $('#whois_whisperer_box').show(); } } else { WhoisWhisperer.hideBox(); } }, this.timeout * 1000); } WhoisWhisperer.hideBox = function(){ $('#whois_whisperer_box').hide(); } WhoisWhisperer.pushProductAddToCard = function(tld, price, operationName){ const name = 'Doména '+tld+' '+operationName; const id = 'domain_'+tld+'_'+operationName; GtmHelper.addProduct(name, price, id, 'Domain'); const gtmEvent = GtmHelper.render(); dataLayer.push({ ecommerce: null }); dataLayer.push(gtmEvent); } WhoisWhisperer.checkOtherTlds = function(element) { //zde je potreba nastavit navraceni focusu pri scrollovani seznamem domen //kvuli ie, ktery pri kliknuti na scroller ztrati focus a whisperer se zavre $('#whois_whisperer_check_europe').closest('.container').scroll( function(){ $('.whois_whisperer').focus(); }); $(element).slideToggle(); $('.whois_whisperer').focus(); } WhoisWhisperer.renderDomainRow = function(domainName, type, hidden, elementName, tld) { var additivePostMap = WhoisWhisperer.prepareAdditivePosts(elementName); var idPart = WhoisWhisperer.domainToId(domainName); var html = ''; html += '' +'

.'+tld+'

' + domainName +' ' +' ' +' '+WhoisWhisperer.translate.checking+'' +' ' ; html += '' +'' +' ' +'
' +' ' +' ' +' ' +' ' ; for(var name in additivePostMap){ html += '' +'' ; } html+= '
'; return html; } WhoisWhisperer.prepareAdditivePosts = function(name){ return WhoisWhisperer.additivePostMap[name] ? WhoisWhisperer.additivePostMap[name] : {} ; } WhoisWhisperer.submit = function(formIdentify){ const formContainer = $('#whois_whisperer_form_'+formIdentify); formContainer.submit(); const data = WhoisWhisperer.products[formIdentify]; WhoisWhisperer.pushProductAddToCard( data.tld, data.price, data.operation ); }; WhoisWhisperer.hide = function(){ WhoisWhisperer.hideBox(); }; WhoisWhisperer.check = function(domain, tld) { $.ajax({ type: "POST", async: true, cache: false, url: '/whois-agent.php', data: ({ name : domain, tld : tld }), success: function(answer) { var result = $.evalJSON(answer); var idPart = WhoisWhisperer.domainToId(domain+'.'+tld); if($('#whois_whisperer_row_'+idPart).length < 1) { // nez prisla odpoved, zmenila se overovana domena, vysledek zahodime return; } var color = ''; var text = ''; var info = ''; switch(result.result) { case 'CREATE': case 'CREATE_ONLY_DOMAIN': buttonType = 'buttonDomain'; text = WhoisWhisperer.translate['order']; break; case 'TRANSFER': case 'TRANSFER_ONLY_DOMAIN': buttonType = 'buttonDomain prevod'; text = WhoisWhisperer.translate['transfer']; break; case 'RUN_PARKING': buttonType = 'buttonDomain hosting'; text = WhoisWhisperer.translate['runParking']; break; case 'ONLY_SERVICES': buttonType = 'buttonDomain'; text = WhoisWhisperer.translate['onlyServices']; break; case 'CAN_NOT': buttonType = 'buttonDomain stopDomain'; text = WhoisWhisperer.translate['canNot']; info = WhoisWhisperer.translate['changeTariff']; break; case 'ERROR': default: buttonType = 'buttonDomain error'; text = WhoisWhisperer.translate['error']; break; } $('#whois_whisperer_status_'+idPart).html(''+text+''); $('#whois_whisperer_name_'+idPart) .html(result.name+'.'+tld) .attr('data-price', result.price) .attr('data-tld', tld) .attr('data-operation', result.result); WhoisWhisperer.products[idPart] = { price: result.price, tld: tld, operation: result.result }; $('#whois_whisperer_hidden_'+idPart).get(0).value = result.name+'.'+tld; $('#whois_whisperer_operation_'+idPart).get(0).value = result.result; if(! result.canOrder) { $('#whois_whisperer_row_'+idPart).get(0).onclick = ''; } if(result.webhostingName) { $('#whois_whisperer_row_'+idPart).after( '' + WhoisWhisperer.translate['onWebhosting'] .replace(/%s/, result.webhostingName) + '' ); } if(info) { $('#whois_whisperer_row_'+idPart).after( ''+info+'' ); } } }); } WhoisWhisperer.repair = function(domain) { return domain.replace(/^https?:\/\//, '') .replace(/^www\./, '') .replace(/^\./, '') .replace(/[!"#$%&'()*+,\/:;<=>?@\[\]^_`{|}~]/g, '') .split('.')[0] ; } WhoisWhisperer.domainToId = function(domain) { return domain.replace(/[\W.]/g, '_'); }