| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880 |
- if (typeof localTrans === 'undefined') {
- localTrans = function (phraseId, fallback)
- {
- if (typeof _localLang !== 'undefined') {
- if (typeof _localLang[phraseId] !== 'undefined') {
- if (_localLang[phraseId].length > 0) {
- return _localLang[phraseId];
- }
- }
- }
- return fallback;
- }
- }
- var domainLookupCallCount,
- checkoutForm,
- furtherSuggestions;
- jQuery(document).ready(function(){
- jQuery('#order-standard_cart').find('input').not('.no-icheck').iCheck({
- inheritID: true,
- checkboxClass: 'icheckbox_square-blue',
- radioClass: 'iradio_square-blue',
- increaseArea: '20%'
- });
- jQuery('.mc-promo .header').click(function(e) {
- e.preventDefault();
- if (jQuery(e.target).is('.btn, .btn span,.btn .fa')) {
- return;
- }
- jQuery(this).parent().find('.rotate').toggleClass('down');
- jQuery(this).parent().find('.body').slideToggle('fast');
- });
- jQuery('.mc-promos.viewcart .mc-promo:first-child .header').click();
- var cardNumber = jQuery('#inputCardNumber'),
- existingCvv = jQuery('#inputCardCVV2');
- if (cardNumber.length) {
- cardNumber.payment('formatCardNumber');
- jQuery('#inputCardCVV').payment('formatCardCVC');
- jQuery('#inputCardStart').payment('formatCardExpiry');
- jQuery('#inputCardExpiry').payment('formatCardExpiry');
- }
- if (existingCvv.length) {
- existingCvv.payment('formatCardCVC');
- }
- var $orderSummaryEl = jQuery("#orderSummary");
- if ($orderSummaryEl.length) {
- var offset = jQuery("#scrollingPanelContainer").parent('.row').offset();
- var maxTopOffset = jQuery("#scrollingPanelContainer").parent('.row').outerHeight() - 35;
- var topPadding = 15;
- jQuery(window).resize(function() {
- offset = jQuery("#scrollingPanelContainer").parent('.row').offset();
- maxTopOffset = jQuery("#scrollingPanelContainer").parent('.row').outerHeight() - 35;
- repositionScrollingSidebar();
- });
- jQuery(window).scroll(function() {
- repositionScrollingSidebar();
- });
- repositionScrollingSidebar();
- }
- function repositionScrollingSidebar() {
- if (jQuery('#scrollingPanelContainer').css('float') === 'none') {
- $orderSummaryEl.stop().css('margin-top', '0');
- return false;
- }
- var heightOfOrderSummary = $orderSummaryEl.outerHeight();
- var offsetTop = 0;
- if (typeof offset !== "undefined") {
- offsetTop = offset.top;
- }
- var newTopOffset = jQuery(window).scrollTop() - offsetTop + topPadding;
- if (newTopOffset > maxTopOffset - heightOfOrderSummary) {
- newTopOffset = maxTopOffset - heightOfOrderSummary;
- }
- if (jQuery(window).scrollTop() > offsetTop) {
- $orderSummaryEl.stop().animate({
- marginTop: newTopOffset
- });
- } else {
- $orderSummaryEl.stop().animate({
- marginTop: 0
- });
- }
- }
- jQuery("#frmConfigureProduct").submit(function(e) {
- e.preventDefault();
- var button = jQuery('#btnCompleteProductConfig');
- var btnOriginalText = jQuery(button).html();
- jQuery(button).find('i').removeClass('fa-arrow-circle-right').addClass('fa-spinner fa-spin');
- WHMCS.http.jqClient.post("cart.php", 'ajax=1&a=confproduct&' + jQuery("#frmConfigureProduct").serialize(),
- function(data) {
- if (data) {
- jQuery("#btnCompleteProductConfig").html(btnOriginalText);
- jQuery("#containerProductValidationErrorsList").html(data);
- jQuery("#containerProductValidationErrors").show();
- // scroll to error container if below it
- if (jQuery(window).scrollTop() > jQuery("#containerProductValidationErrors").offset().top) {
- jQuery('html, body').scrollTop(jQuery("#containerProductValidationErrors").offset().top - 15);
- }
- } else {
- window.location = 'cart.php?a=confdomains';
- }
- }
- );
- });
- jQuery("#productConfigurableOptions").on('ifChecked', 'input', function() {
- recalctotals();
- });
- jQuery("#productConfigurableOptions").on('ifUnchecked', 'input', function() {
- recalctotals();
- });
- jQuery("#productConfigurableOptions").on('change', 'select', function() {
- recalctotals();
- });
- jQuery(".addon-products").on('click', '.panel-addon', function(e) {
- e.preventDefault();
- var $activeAddon = jQuery(this);
- if ($activeAddon.hasClass('panel-addon-selected')) {
- $activeAddon.find('input[type="checkbox"]').iCheck('uncheck');
- } else {
- $activeAddon.find('input[type="checkbox"]').iCheck('check');
- }
- });
- jQuery(".addon-products").on('ifChecked', '.panel-addon input', function(event) {
- var $activeAddon = jQuery(this).parents('.panel-addon');
- $activeAddon.addClass('panel-addon-selected');
- $activeAddon.find('input[type="checkbox"]').iCheck('check');
- $activeAddon.find('.panel-add').html('<i class="fas fa-shopping-cart"></i> '+localTrans('addedToCartRemove', 'Added to Cart (Remove)'));
- recalctotals();
- });
- jQuery(".addon-products").on('ifUnchecked', '.panel-addon input', function(event) {
- var $activeAddon = jQuery(this).parents('.panel-addon');
- $activeAddon.removeClass('panel-addon-selected');
- $activeAddon.find('input[type="checkbox"]').iCheck('uncheck');
- $activeAddon.find('.panel-add').html('<i class="fas fa-plus"></i> '+localTrans('addToCart', 'Add to Cart'));
- recalctotals();
- });
- jQuery("#frmConfigureProduct").on('ifChecked', '.addon-selector', function(event) {
- recalctotals();
- });
- if (jQuery(".domain-selection-options input:checked").length == 0) {
- var firstInput = jQuery(".domain-selection-options input:first");
- jQuery(firstInput).iCheck('check');
- jQuery(firstInput).parents('.option').addClass('option-selected');
- }
- jQuery("#domain" + jQuery(".domain-selection-options input:checked").val()).show();
- jQuery(".domain-selection-options input").on('ifChecked', function(event){
- jQuery(".domain-selection-options .option").removeClass('option-selected');
- jQuery(this).parents('.option').addClass('option-selected');
- jQuery(".domain-input-group").hide();
- jQuery("#domain" + jQuery(this).val()).show();
- });
- jQuery('#frmProductDomain').submit(function (e) {
- e.preventDefault();
- var btnSearchObj = jQuery(this).find('button[type="submit"]'),
- domainSearchResults = jQuery("#DomainSearchResults"),
- spotlightTlds = jQuery('#spotlightTlds'),
- suggestions = jQuery('#domainSuggestions'),
- btnDomainContinue = jQuery('#btnDomainContinue'),
- domainoption = jQuery(".domain-selection-options input:checked").val(),
- sldInput = jQuery("#" + domainoption + "sld"),
- sld = sldInput.val(),
- tld = '',
- pid = jQuery('#frmProductDomainPid').val(),
- tldInput = '',
- idnLanguage = jQuery('#idnLanguageSelector');
- jQuery('.field-error-msg').hide();
- if (idnLanguage.is(':visible')) {
- idnLanguage.slideUp();
- idnLanguage.find('select').val('');
- }
- if (domainoption == 'incart') {
- sldInput = jQuery("#" + domainoption + "sld option:selected");
- sld = sldInput.text();
- } else if (domainoption == 'subdomain') {
- tldInput = jQuery("#" + domainoption + "tld option:selected");
- tld = tldInput.text();
- } else {
- tldInput = jQuery("#" + domainoption + "tld");
- tld = tldInput.val();
- if (sld && !tld) {
- tldInput.tooltip('show');
- tldInput.focus();
- return false;
- }
- if (tld.substr(0, 1) != '.') {
- tld = '.' + tld;
- }
- }
- if (!sld) {
- sldInput.tooltip('show');
- sldInput.focus();
- return false;
- }
- sldInput.tooltip('hide');
- if (tldInput.length) {
- tldInput.tooltip('hide');
- }
- jQuery('input[name="domainoption"]').iCheck('disable');
- domainLookupCallCount = 0;
- btnSearchObj.attr('disabled', 'disabled').addClass('disabled');
- jQuery('.domain-lookup-result').hide();
- jQuery('#primaryLookupResult div').filter(function() {
- return $(this).closest('#idnLanguageSelector').length === 0;
- }).hide();
- jQuery('#primaryLookupResult').find('.register-price-label').show().end()
- .find('.transfer-price-label').hide();
- jQuery('.domain-lookup-register-loader').hide();
- jQuery('.domain-lookup-transfer-loader').hide();
- jQuery('.domain-lookup-other-loader').hide();
- if (domainoption == 'register') {
- jQuery('.domain-lookup-register-loader').show();
- } else if (domainoption == 'transfer') {
- jQuery('.domain-lookup-transfer-loader').show();
- } else {
- jQuery('.domain-lookup-other-loader').show();
- }
- jQuery('.domain-lookup-loader').show();
- suggestions.find('div:not(.actions)').hide().end()
- .find('.clone').remove();
- jQuery('div.panel-footer.more-suggestions').hide()
- .find('a').show().end()
- .find('span.no-more').hide();
- jQuery('.btn-add-to-cart').removeAttr('disabled')
- .find('span').hide().end()
- .find('span.to-add').show();
- btnDomainContinue.hide().attr('disabled', 'disabled');
- if (domainoption != 'register') {
- spotlightTlds.hide();
- jQuery('.suggested-domains').hide();
- }
- if (!domainSearchResults.is(":visible")) {
- domainSearchResults.fadeIn();
- }
- if (domainoption == 'register') {
- spotlightTlds.fadeIn('fast');
- jQuery('#resultDomainOption').val(domainoption);
- var lookup = WHMCS.http.jqClient.post(
- WHMCS.utils.getRouteUrl('/domain/check'),
- {
- token: csrfToken,
- type: 'domain',
- domain: sld + tld,
- sld: sld,
- tld: tld,
- source: 'cartAddDomain'
- },
- 'json'
- ),
- spotlight = WHMCS.http.jqClient.post(
- WHMCS.utils.getRouteUrl('/domain/check'),
- {
- token: csrfToken,
- type: 'spotlight',
- domain: sld + tld,
- sld: sld,
- tld: tld,
- source: 'cartAddDomain'
- },
- 'json'
- ),
- suggestion = WHMCS.http.jqClient.post(
- WHMCS.utils.getRouteUrl('/domain/check'),
- {
- token: csrfToken,
- type: 'suggestions',
- domain: sld + tld,
- sld: sld,
- tld: tld,
- source: 'cartAddDomain'
- },
- 'json'
- );
- // primary lookup handler
- lookup.done(function (data) {
- jQuery.each(data.result, function(index, domain) {
- var pricing = null,
- result = jQuery('#primaryLookupResult'),
- available = result.find('.domain-available'),
- availablePrice = result.find('.domain-price'),
- unavailable = result.find('.domain-unavailable'),
- invalid= result.find('.domain-invalid'),
- contactSupport = result.find('.domain-contact-support'),
- resultDomain = jQuery('#resultDomain'),
- resultDomainPricing = jQuery('#resultDomainPricingTerm'),
- error = result.find('.domain-error');
- result.show();
- jQuery('.domain-lookup-primary-loader').hide();
- if (typeof domain !== 'string' && !domain.error && domain.isValidDomain) {
- error.hide();
- pricing = domain.pricing;
- if (domain.isAvailable && typeof pricing !== 'string') {
- if (domain.domainName !== domain.idnDomainName && idnLanguage.not(':visible')) {
- idnLanguage.slideDown();
- }
- if (domain.preferredTLDNotAvailable) {
- unavailable.show().find('strong').html(domain.originalUnavailableDomain);
- }
- contactSupport.hide();
- available.show().find('strong').html(domain.domainName);
- availablePrice.show().find('span.price').html(pricing[Object.keys(pricing)[0]].register).end()
- .find('button').attr('data-domain', domain.domainName);
- resultDomain.val(domain.domainName);
- resultDomainPricing.val(Object.keys(pricing)[0]).attr('name', 'domainsregperiod[' + domain.domainName +']');
- btnDomainContinue.removeAttr('disabled');
- } else {
- unavailable.show().find('strong').html(domain.domainName);
- contactSupport.hide();
- if (typeof pricing === 'string' && pricing == 'ContactUs') {
- contactSupport.show();
- }
- }
- } else {
- var done = false,
- reg = /<br\s*\/>/,
- errors = [];
- if (!domain.isValidDomain && domain.domainErrorMessage) {
- invalid.text(domain.domainErrorMessage);
- } else if (domain.error || index === 'error') {
- if (typeof domain === 'string') {
- error.text(domain);
- } else if (!domain.error.match(reg)) {
- error.text(domain.error);
- } else {
- error.text('');
- errors = domain.error.split(reg);
- for(var i=0; i < errors.length; i++) {
- var errorMsg = errors[i];
- if (errorMsg.length) {
- if (error.text()) {
- // only add line break if there is
- // multiple lines of text
- error.append('<br />');
- }
- error.append(jQuery('<span></span>').text(errorMsg));
- }
- }
- }
- error.show();
- done = true;
- }
- if (!done) {
- invalid.show();
- }
- }
- });
- }).always(function() {
- hasProductDomainLookupEnded(3, btnSearchObj);
- });
- // spotlight lookup handler
- spotlight.done(function(data) {
- if (typeof data != 'object' || data.result.length == 0 || data.result.error) {
- jQuery('.domain-lookup-spotlight-loader').hide();
- return;
- }
- jQuery.each(data.result, function(index, domain) {
- var tld = domain.tldNoDots,
- pricing = domain.pricing,
- result = jQuery('#spotlight' + tld + ' .domain-lookup-result');
- jQuery('.domain-lookup-spotlight-loader').hide();
- result.find('button').hide();
- if (domain.isValidDomain) {
- if (domain.isAvailable && typeof pricing !== 'string') {
- if (domain.domainName !== domain.idnDomainName && idnLanguage.not(':visible')) {
- idnLanguage.slideDown();
- }
- result
- .find('span.available').html(pricing[Object.keys(pricing)[0]].register).show().end()
- .find('button.btn-add-to-cart')
- .attr('data-domain', domain.domainName)
- .show();
- result.find('button.domain-contact-support').hide();
- } else {
- if (typeof pricing === 'string') {
- if (pricing == '') {
- result.find('button.unavailable').show();
- } else {
- result.find('button.domain-contact-support').show();
- }
- result.find('span.available').hide();
- } else {
- result.find('button.unavailable').show();
- result.find('span.available').hide();
- }
- }
- } else {
- result.find('button.invalid:hidden').show().end()
- .find('span.available').hide().end()
- .find('button').not('button.invalid').hide();
- }
- result.show();
- });
- }).always(function() {
- hasProductDomainLookupEnded(3, btnSearchObj);
- });
- // suggestions lookup handler
- suggestion.done(function (data) {
- if (typeof data != 'object' || data.result.length == 0 || data.result.error) {
- jQuery('.suggested-domains').fadeOut('fast', function() {
- jQuery(this).hide();
- });
- return;
- } else {
- jQuery('.suggested-domains').show();
- }
- var suggestionCount = 1;
- jQuery.each(data.result, function(index, domain) {
- var tld = domain.tld,
- pricing = domain.pricing;
- suggestions.find('div:first').clone(true, true).appendTo(suggestions);
- var newSuggestion = suggestions.find('div.domain-suggestion').last();
- newSuggestion.addClass('clone')
- .find('span.domain').html(domain.sld).end()
- .find('span.extension').html('.' + tld);
- if (domain.domainName !== domain.idnDomainName && idnLanguage.not(':visible')) {
- idnLanguage.slideDown();
- }
- if (typeof pricing === 'string') {
- newSuggestion.find('button.btn-add-to-cart').remove();
- if (pricing != '') {
- newSuggestion.find('button.domain-contact-support').show().end()
- .find('span.price').hide();
- } else {
- newSuggestion.remove();
- }
- } else {
- newSuggestion.find('button.btn-add-to-cart').attr('data-domain', domain.domainName).end()
- .find('span.price').html(pricing[Object.keys(pricing)[0]].register);
- }
- if (suggestionCount <= 10) {
- newSuggestion.show();
- }
- suggestionCount++;
- if (domain.group) {
- newSuggestion.find('span.promo')
- .addClass(domain.group)
- .html(domain.group.toUpperCase())
- .show();
- }
- furtherSuggestions = suggestions.find('div.domain-suggestion.clone').not(':visible').length;
- if (furtherSuggestions > 0) {
- jQuery('div.more-suggestions').show();
- }
- });
- jQuery('.domain-lookup-suggestions-loader').hide();
- jQuery('#domainSuggestions').show();
- }).always(function() {
- hasProductDomainLookupEnded(3, btnSearchObj);
- });
- } else if (domainoption == 'transfer') {
- jQuery('#resultDomainOption').val(domainoption);
- var transfer = WHMCS.http.jqClient.post(
- WHMCS.utils.getRouteUrl('/domain/check'),
- {
- token: csrfToken,
- type: 'transfer',
- domain: sld + tld,
- sld: sld,
- tld: tld,
- source: 'cartAddDomain'
- },
- 'json'
- );
- transfer.done(function (data) {
- if (typeof data != 'object' || data.result.length == 0) {
- jQuery('.domain-lookup-primary-loader').hide();
- return;
- }
- var result = jQuery('#primaryLookupResult'),
- transfereligible = result.find('.transfer-eligible'),
- transferPrice = result.find('.domain-price'),
- transfernoteligible = result.find('.transfer-not-eligible'),
- resultDomain = jQuery('#resultDomain'),
- resultDomainPricing = jQuery('#resultDomainPricingTerm');
- if (Object.keys(data.result).length === 0) {
- jQuery('.domain-lookup-primary-loader').hide();
- result.show();
- transfernoteligible.show();
- }
- jQuery.each(data.result, function(index, domain) {
- var pricing = domain.pricing;
- jQuery('.domain-lookup-primary-loader').hide();
- result.show();
- if (domain.isRegistered) {
- transfereligible.show();
- transferPrice.show().find('.register-price-label').hide().end()
- .find('.transfer-price-label').show().end()
- .find('span.price').html(pricing[Object.keys(pricing)[0]].transfer).end()
- .find('button').attr('data-domain', domain.domainName);
- resultDomain.val(domain.domainName);
- resultDomainPricing.val(Object.keys(pricing)[0]).attr('name', 'domainsregperiod[' + domain.domainName +']');
- btnDomainContinue.removeAttr('disabled');
- } else {
- transfernoteligible.show();
- }
- });
- }).always(function() {
- hasProductDomainLookupEnded(1, btnSearchObj);
- });
- } else if (domainoption == 'owndomain' || domainoption == 'subdomain' || domainoption == 'incart') {
- var otherDomain = WHMCS.http.jqClient.post(
- WHMCS.utils.getRouteUrl('/domain/check'),
- {
- token: csrfToken,
- type: domainoption,
- pid: pid,
- domain: sld + tld,
- sld: sld,
- tld: tld,
- source: 'cartAddDomain'
- },
- 'json'
- );
- otherDomain.done(function(data) {
- if (typeof data != 'object' || data.result.length == 0) {
- jQuery('.domain-lookup-subdomain-loader').hide();
- return;
- }
- jQuery.each(data.result, function(index, result) {
- if (result.status === true) {
- window.location = 'cart.php?a=confproduct&i=' + result.num;
- } else {
- jQuery('.domain-lookup-primary-loader').hide();
- if (typeof result === 'string') {
- jQuery('#primaryLookupResult').show().find('.domain-error')
- .text(result)
- .show();
- } else {
- jQuery('#primaryLookupResult').show().find('.domain-invalid').show();
- }
- }
- });
- }).always(function(){
- hasProductDomainLookupEnded(1, btnSearchObj);
- });
- }
- btnDomainContinue.show();
- });
- jQuery('#frmProductDomainSelections').on('submit', function(e) {
- var idnLanguage = jQuery('#idnLanguageSelector'),
- idnLanguageInput = idnLanguage.find('select');
- if (!idnLanguage.not(':visible') && !idnLanguageInput.val()) {
- e.preventDefault();
- idnLanguageInput.showInputError();
- return false;
- }
- return true;
- });
- jQuery("#btnAlreadyRegistered").click(function() {
- jQuery("#containerNewUserSignup").slideUp('', function() {
- jQuery("#containerExistingUserSignin").slideDown('', function() {
- jQuery("#inputCustType").val('existing');
- jQuery("#btnAlreadyRegistered").fadeOut('', function() {
- jQuery("#btnNewUserSignup").fadeIn();
- });
- });
- });
- jQuery("#containerNewUserSecurity").hide();
- if (jQuery("#stateselect").attr('required')) {
- jQuery("#stateselect").removeAttr('required').addClass('requiredAttributeRemoved');
- }
- jQuery('.marketing-email-optin').slideUp();
- });
- jQuery("#btnNewUserSignup").click(function() {
- jQuery("#containerExistingUserSignin").slideUp('', function() {
- jQuery("#containerNewUserSignup").slideDown('', function() {
- jQuery("#inputCustType").val('new');
- if (jQuery("#passwdFeedback").html().length == 0) {
- jQuery("#containerNewUserSecurity").show();
- }
- jQuery("#btnNewUserSignup").fadeOut('', function() {
- jQuery("#btnAlreadyRegistered").fadeIn();
- });
- });
- jQuery('.marketing-email-optin').slideDown();
- });
- if (jQuery("#stateselect").hasClass('requiredAttributeRemoved')) {
- jQuery("#stateselect").attr('required', 'required').removeClass('requiredAttributeRemoved');
- }
- });
- jQuery("#btnExistingLogin").click(function() {
- var inputLoginEmail = jQuery('#inputLoginEmail').val(),
- inputLoginPassword = jQuery('#inputLoginPassword').val(),
- existingLoginMessage = jQuery('#existingLoginMessage'),
- btnExistingLogin = jQuery('#btnExistingLogin');
- btnExistingLogin.prop('disabled', true)
- .addClass('disabled')
- .find('span').toggle();
- WHMCS.http.jqClient.jsonPost({
- url: WHMCS.utils.getRouteUrl('/login/cart'),
- data: {
- username: inputLoginEmail,
- password: inputLoginPassword,
- token: csrfToken
- },
- success: function (data) {
- if (!data.redirectUrl) {
- location.reload(true);
- } else {
- window.location.href = data.redirectUrl;
- }
- },
- error: function (error) {
- if (error) {
- existingLoginMessage.slideUp('fast')
- .toggle()
- .html(error)
- .slideDown('fast');
- btnExistingLogin.prop('disabled', false)
- .removeClass('disabled')
- .find('span').toggle();
- }
- }
- });
- });
- jQuery('.account-select').on('ifChecked', function(event) {
- var userSignupContainer = jQuery('#containerNewUserSignup'),
- stateSelect = jQuery("#stateselect"),
- thisValue = jQuery(this).val(),
- btnCompleteOrder = jQuery('#btnCompleteOrder'),
- existingPayMethods = jQuery('#existingCardsContainer'),
- existingUserEmail = jQuery('#inputEmail');
- if (existingPayMethods.length) {
- existingPayMethods.html('');
- }
- if (existingUserEmail.length) {
- existingUserEmail.attr('value', '');
- }
- jQuery('#containerExistingAccountSelect')
- .find('div.account.active')
- .removeClass('active');
- jQuery(this).closest('div.account').addClass('active');
- if (thisValue === 'new') {
- if (userSignupContainer.not(':visible')) {
- userSignupContainer.slideDown('', function () {
- jQuery("#inputCustType").val('add');
- jQuery('.marketing-email-optin').slideDown();
- });
- if (stateSelect.hasClass('requiredAttributeRemoved')) {
- stateSelect.attr('required', 'required')
- .removeClass('requiredAttributeRemoved');
- }
- }
- } else {
- btnCompleteOrder.addClass('disabled');
- if (btnCompleteOrder.hasClass('spinner-on-click')) {
- var icon = btnCompleteOrder.find('i.fas,i.far,i.fal,i.fab');
- jQuery(icon)
- .data('original-class', icon.attr('class'))
- .removeAttr('class')
- .addClass('fas fa-spinner fa-spin');
- }
- jQuery("#inputCustType").val('account');
- if (userSignupContainer.is(':visible')) {
- userSignupContainer.slideUp();
- if (stateSelect.attr('required')) {
- stateSelect.removeAttr('required')
- .addClass('requiredAttributeRemoved');
- }
- jQuery('.marketing-email-optin').slideUp();
- }
- }
- WHMCS.http.jqClient.jsonPost({
- url: WHMCS.utils.getRouteUrl('/cart/account/select'),
- data: {
- account_id: thisValue,
- token: csrfToken
- },
- success: function(data) {
- var creditDiv = jQuery('#applyCreditContainer');
- jQuery('#totalCartPrice').text(data.total);
- creditDiv.find('p').first().text(data.availableCreditBalance);
- if (!data.canUseCreditOnCheckout && creditDiv.is(':visible')) {
- var skipCreditOnCheckout = jQuery('#skipCreditOnCheckout');
- creditDiv.hide();
- skipCreditOnCheckout.prop('checked', true);
- } else if (data.canUseCreditOnCheckout) {
- var useCreditOnCheckout = jQuery('#useCreditOnCheckout'),
- spanFullCredit = jQuery('#spanFullCredit'),
- spanUseCredit = jQuery('#spanUseCredit');
- if (data.full) {
- spanFullCredit.show().find('span').text(data.creditBalance);
- if (spanUseCredit.is(':visible')) {
- spanUseCredit.slideDown();
- }
- } else {
- spanUseCredit.show().find('span').text(data.creditBalance);
- if (spanFullCredit.is(':visible')) {
- spanFullCredit.slideUp();
- }
- }
- useCreditOnCheckout.iCheck('check');
- if (creditDiv.not(':visible')) {
- creditDiv.slideDown();
- }
- }
- if (existingPayMethods.length) {
- existingPayMethods.html(data.existingCards);
- existingPayMethods.find('input[type="radio"]').iCheck({
- inheritID: true,
- checkboxClass: 'icheckbox_square-blue',
- radioClass: 'iradio_square-blue',
- increaseArea: '20%'
- });
- var firstVisible = jQuery('input[name="ccinfo"]:visible').first();
- if (firstVisible.length) {
- firstVisible.iCheck('check');
- }
- }
- },
- always: function() {
- btnCompleteOrder.removeClass('disabled');
- if (btnCompleteOrder.hasClass('spinner-on-click')) {
- var icon = btnCompleteOrder.find('i.fas,i.far,i.fal,i.fab');
- if (jQuery(icon).hasClass('fa-spinner')) {
- jQuery(icon)
- .removeAttr('class')
- .addClass(icon.data('original-class'));
- }
- }
- }
- });
- });
- var existingCards = jQuery(document).find('.existing-card'),
- cvvFieldContainer = jQuery('#cvv-field-container'),
- existingCardContainer = jQuery('#existingCardsContainer'),
- newCardInfo = jQuery('#newCardInfo'),
- newCardSaveSettings = jQuery('#newCardSaveSettings'),
- inputNoStoreContainer = jQuery('#inputNoStoreContainer'),
- existingCardInfo = jQuery('#existingCardInfo'),
- newCardOption = jQuery('#new'),
- creditCardInputFields = jQuery('#creditCardInputFields');
- jQuery(document).on('ifChecked', '.existing-card', function(event) {
- newCardSaveSettings.slideUp().find('input').attr('disabled', 'disabled');
- if (jQuery('.payment-methods:checked').data('remote-inputs') === 1) {
- return;
- }
- newCardInfo.slideUp().find('input').attr('disabled', 'disabled');
- existingCardInfo.slideDown().find('input').removeAttr('disabled');
- });
- newCardOption.on('ifChecked', function(event) {
- newCardSaveSettings.slideDown().find('input').removeAttr('disabled');
- if (jQuery('.payment-methods:checked').data('remote-inputs') === 1) {
- return;
- }
- newCardInfo.slideDown().find('input').removeAttr('disabled');
- existingCardInfo.slideUp().find('input').attr('disabled', 'disabled');
- });
- if (!existingCards.length) {
- existingCardInfo.slideUp().find('input').attr('disabled', 'disabled');
- }
- jQuery(".payment-methods").on('ifChecked', function(event) {
- if (jQuery(this).hasClass('is-credit-card')) {
- var gatewayPaymentType = jQuery(this).data('payment-type'),
- gatewayModule = jQuery(this).val(),
- showLocal = jQuery(this).data('show-local'),
- relevantMethods = [];
- if (gatewayPaymentType === 'RemoteCreditCard') {
- inputNoStoreContainer.hide().find('input').prop('disabled', 'disabled');
- } else {
- if (inputNoStoreContainer.not(':visible')) {
- inputNoStoreContainer.slideDown().find('input').removeProp('disabled');
- }
- }
- existingCards.each(function(index) {
- var paymentType = jQuery(this).data('payment-type'),
- paymentModule = jQuery(this).data('payment-gateway'),
- payMethodId = jQuery(this).val();
- var paymentTypeMatch = (paymentType === gatewayPaymentType);
- var paymentModuleMatch = false;
- if (gatewayPaymentType === 'RemoteCreditCard') {
- // only show remote credit cards that belong to the selected gateway
- paymentModuleMatch = (paymentModule === gatewayModule);
- } else if (gatewayPaymentType === 'CreditCard') {
- // any local credit card can be used with any credit card gateway
- paymentModuleMatch = true;
- }
- if (showLocal && paymentType === 'CreditCard') {
- paymentTypeMatch = true;
- paymentModuleMatch = true;
- }
- var payMethodElements = jQuery('[data-paymethod-id="' + payMethodId + '"]');
- if (paymentTypeMatch && paymentModuleMatch) {
- jQuery(payMethodElements).show();
- relevantMethods.push(this);
- } else {
- jQuery(payMethodElements).hide();
- }
- });
- var enabledRelevantMethods = relevantMethods.filter(function (item) {
- return ! jQuery(item).attr('disabled');
- });
- if (enabledRelevantMethods.length > 0) {
- var defaultId = null;
- jQuery.each(enabledRelevantMethods, function(index, value) {
- var jQueryElement = jQuery(value),
- order = parseInt(jQueryElement.data('order-preference'), 10);
- if ((defaultId === null) || (order < defaultId)) {
- defaultId = jQueryElement.val();
- if (order === 0) {
- return false;
- }
- }
- });
- if (defaultId === null) {
- defaultId = 'new';
- }
- jQuery.each(enabledRelevantMethods, function(index, value) {
- var jQueryElement = jQuery(value);
- if (jQueryElement.val() === defaultId) {
- jQueryElement.iCheck('check');
- return false;
- }
- });
- existingCardContainer.show();
- existingCardInfo.show().find('input').removeAttr('disabled');
- } else {
- jQuery(newCardOption).iCheck('check');
- existingCardContainer.hide();
- existingCardInfo.hide().find('input').attr('disabled', 'disabled');
- }
- if (!creditCardInputFields.is(":visible")) {
- creditCardInputFields.slideDown();
- }
- } else {
- creditCardInputFields.slideUp();
- }
- });
- // make sure relevant payment methods are displayed for the pre-selected gateway
- jQuery(".payment-methods:checked").trigger('ifChecked');
- jQuery('.cc-input-container .paymethod-info').click(function() {
- var payMethodId = $(this).data('paymethod-id');
- var input = jQuery('input[name="ccinfo"][value=' + payMethodId + ']:not(:disabled)');
- if (input.length > 0) {
- input.iCheck('check');
- }
- });
- jQuery("#inputDomainContact").on('change', function() {
- var thisInput = jQuery(this);
- if (this.value === "addingnew") {
- thisInput.closest('div').addClass('pb-2');
- jQuery("#domainRegistrantInputFields").parent('div').slideDown();
- } else {
- jQuery("#domainRegistrantInputFields").parent('div').slideUp(function () {
- thisInput.closest('div').removeClass('pb-2');
- });
- }
- });
- if (typeof registerFormPasswordStrengthFeedback == 'function') {
- jQuery("#inputNewPassword1").keyup(registerFormPasswordStrengthFeedback);
- } else {
- jQuery("#inputNewPassword1").keyup(function ()
- {
- passwordStrength = getPasswordStrength(jQuery(this).val());
- if (passwordStrength >= 75) {
- textLabel = langPasswordStrong;
- cssClass = 'success';
- } else
- if (passwordStrength >= 30) {
- textLabel = langPasswordModerate;
- cssClass = 'warning';
- } else {
- textLabel = langPasswordWeak;
- cssClass = 'danger';
- }
- jQuery("#passwordStrengthTextLabel").html(langPasswordStrength + ': ' + passwordStrength + '% ' + textLabel);
- jQuery("#passwordStrengthMeterBar").css(
- 'width',
- passwordStrength + '%'
- ).attr('aria-valuenow', passwordStrength);
- jQuery("#passwordStrengthMeterBar").removeClass(
- 'progress-bar-success progress-bar-warning progress-bar-danger').addClass(
- 'progress-bar-' + cssClass);
- });
- }
- jQuery('#inputDomain').on('shown.bs.tooltip', function () {
- setTimeout(function(input) {
- input.tooltip('hide');
- },
- 5000,
- jQuery(this)
- );
- });
- jQuery('#frmDomainChecker').submit(function (e) {
- e.preventDefault();
- var frmDomain = jQuery('#frmDomainChecker'),
- inputDomain = jQuery('#inputDomain'),
- suggestions = jQuery('#domainSuggestions'),
- reCaptchaContainer = jQuery('#divDynamicRecaptcha'),
- captcha = jQuery('#inputCaptcha'),
- idnLanguage = jQuery('#idnLanguageSelector');
- jQuery('.field-error-msg').hide();
- if (idnLanguage.is(':visible')) {
- idnLanguage.slideUp();
- idnLanguage.find('select').val('');
- }
- domainLookupCallCount = 0;
- // check a domain has been entered
- if (!inputDomain.val()) {
- inputDomain.tooltip('show');
- inputDomain.focus();
- return;
- }
- inputDomain.tooltip('hide');
- if (jQuery('#captchaContainer').length) {
- validate_captcha(frmDomain);
- return;
- }
- reCaptchaContainer.tooltip('hide');
- captcha.tooltip('hide');
- // disable repeat submit and show loader
- jQuery('#btnCheckAvailability').attr('disabled', 'disabled').addClass('disabled');
- jQuery('.domain-lookup-result').hide();
- jQuery('.domain-lookup-loader').show();
- // reset elements
- suggestions.find('div:not(.actions)').hide();
- suggestions.find('.clone').remove();
- jQuery('div.panel-footer.more-suggestions').hide()
- .find('a').show().end()
- .find('span.no-more').hide();
- jQuery('.btn-add-to-cart').removeAttr('disabled')
- .find('span').hide().end()
- .find('span.to-add').show();
- // fade in results
- if (jQuery('#DomainSearchResults').not(":visible")) {
- jQuery('.domain-pricing').fadeOut('fast', function() {
- jQuery('#DomainSearchResults').fadeIn();
- });
- }
- var lookup = WHMCS.http.jqClient.post(
- WHMCS.utils.getRouteUrl('/domain/check'),
- frmDomain.serialize() + '&type=domain',
- 'json'
- ),
- spotlight = WHMCS.http.jqClient.post(
- WHMCS.utils.getRouteUrl('/domain/check'),
- frmDomain.serialize() + '&type=spotlight',
- 'json'
- ),
- suggestion = WHMCS.http.jqClient.post(
- WHMCS.utils.getRouteUrl('/domain/check'),
- frmDomain.serialize() + '&type=suggestions',
- 'json'
- );
- // primary lookup handler
- lookup.done(function (data) {
- if (typeof data != 'object' || data.result.length == 0) {
- jQuery('.domain-lookup-primary-loader').hide();
- return;
- }
- jQuery.each(data.result, function(index, domain) {
- var pricing = null,
- result = jQuery('#primaryLookupResult'),
- available = result.find('.domain-available'),
- availablePrice = result.find('.domain-price'),
- contactSupport = result.find('.domain-contact-support'),
- unavailable = result.find('.domain-unavailable'),
- invalid = result.find('.domain-invalid'),
- error = result.find('.domain-error');
- jQuery('.domain-lookup-primary-loader').hide();
- result.find('.btn-add-to-cart').removeClass('checkout');
- result.show();
- if (typeof domain !== 'string' && !domain.error && domain.isValidDomain) {
- pricing = domain.pricing;
- unavailable.hide();
- contactSupport.hide();
- invalid.hide();
- error.hide();
- if (domain.isAvailable && typeof pricing !== 'string') {
- if (domain.domainName !== domain.idnDomainName && idnLanguage.not(':visible')) {
- idnLanguage.slideDown();
- }
- if (domain.preferredTLDNotAvailable) {
- unavailable.show().find('strong').html(domain.originalUnavailableDomain);
- }
- available.show().find('strong').html(domain.domainName);
- availablePrice.show().find('span.price').html(pricing[Object.keys(pricing)[0]].register).end()
- .find('button').attr('data-domain', domain.domainName);
- } else {
- available.hide();
- availablePrice.hide();
- contactSupport.hide();
- unavailable.show().find('strong').html(domain.domainName);
- if (typeof pricing === 'string' && pricing == 'ContactUs') {
- contactSupport.show();
- }
- }
- } else {
- available.hide();
- availablePrice.hide();
- unavailable.hide();
- contactSupport.hide();
- invalid.hide();
- error.hide();
- var done = false,
- reg = /<br\s*\/>/,
- errors = [];
- if (!domain.isValidDomain && domain.domainErrorMessage) {
- invalid.text(domain.domainErrorMessage);
- } else if (domain.error || index === 'error') {
- if (typeof domain === 'string') {
- error.text(domain);
- } else if (!domain.error.match(reg)) {
- error.text(domain.error);
- } else {
- error.text('');
- errors = domain.error.split(reg);
- for(var i=0; i < errors.length; i++) {
- var errorMsg = errors[i];
- if (errorMsg.length) {
- if (error.text()) {
- // only add line break if there is
- // multiple lines of text
- error.append('<br />');
- }
- error.append(jQuery('<span></span>').text(errorMsg));
- }
- }
- }
- error.show();
- done = true;
- }
- if (!done) {
- invalid.show();
- }
- }
- });
- }).always(function() {
- hasDomainLookupEnded();
- });
- // spotlight lookup handler
- spotlight.done(function(data) {
- if (typeof data != 'object' || data.result.length == 0 || data.result.error) {
- jQuery('.domain-lookup-spotlight-loader').hide();
- return;
- }
- jQuery.each(data.result, function(index, domain) {
- var tld = domain.tldNoDots,
- pricing = domain.pricing,
- result = jQuery('#spotlight' + tld + ' .domain-lookup-result');
- jQuery('.domain-lookup-spotlight-loader').hide();
- result.find('button').hide();
- if (domain.isValidDomain) {
- if (domain.isAvailable && typeof pricing !== 'string') {
- if (domain.domainName !== domain.idnDomainName && idnLanguage.not(':visible')) {
- idnLanguage.slideDown();
- }
- result.find('button.unavailable').hide().end()
- .find('button.invalid').hide().end()
- .find('span.available').html(pricing[Object.keys(pricing)[0]].register).show().end()
- .find('button').not('button.unavailable').not('button.invalid')
- .attr('data-domain', domain.domainName)
- .show();
- result.find('button.domain-contact-support').hide();
- } else {
- if (typeof pricing === 'string') {
- if (pricing == '') {
- result.find('button.unavailable').show();
- } else {
- result.find('button.domain-contact-support').show();
- }
- result.find('button.invalid').hide();
- result.find('span.available').hide();
- } else {
- result.find('button.invalid').hide().end()
- .find('button.unavailable').show().end()
- .find('span.available').hide();
- }
- }
- } else {
- result.find('button.invalid:hidden').show().end()
- .find('span.available').hide().end()
- .find('button').not('button.invalid').hide();
- }
- result.show();
- });
- }).always(function() {
- hasDomainLookupEnded();
- });
- // suggestions lookup handler
- suggestion.done(function (data) {
- if (typeof data != 'object' || data.result.length == 0 || data.result.error) {
- jQuery('.suggested-domains').fadeOut('fast', function() {
- jQuery(this).hide();
- });
- return;
- } else {
- jQuery('.suggested-domains').show();
- }
- var suggestionCount = 1;
- jQuery.each(data.result, function(index, domain) {
- var tld = domain.tld,
- pricing = domain.pricing;
- suggestions.find('div:first').clone(true, true).appendTo(suggestions);
- var newSuggestion = suggestions.find('div.domain-suggestion').last();
- newSuggestion.addClass('clone')
- .find('span.domain').html(domain.sld).end()
- .find('span.extension').html('.' + tld);
- if (typeof pricing === 'string') {
- newSuggestion.find('button.btn-add-to-cart').remove();
- if (pricing != '') {
- newSuggestion.find('button.domain-contact-support').show().end()
- .find('span.price').hide();
- } else {
- newSuggestion.remove();
- }
- } else {
- if (domain.domainName !== domain.idnDomainName && idnLanguage.not(':visible')) {
- idnLanguage.slideDown();
- }
- newSuggestion.find('button.btn-add-to-cart').attr('data-domain', domain.domainName).end()
- .find('span.price').html(pricing[Object.keys(pricing)[0]].register);
- }
- if (suggestionCount <= 10) {
- newSuggestion.show();
- }
- suggestionCount++;
- if (domain.group) {
- newSuggestion.find('span.promo')
- .addClass(domain.group)
- .show();
- newSuggestion.find('span.sales-group-' + domain.group)
- .show();
- }
- furtherSuggestions = suggestions.find('div.domain-suggestion.clone:hidden').length;
- if (furtherSuggestions > 0) {
- jQuery('div.more-suggestions').show();
- }
- });
- jQuery('.domain-lookup-suggestions-loader').hide();
- jQuery('#domainSuggestions').show();
- }).always(function() {
- hasDomainLookupEnded();
- });
- });
- jQuery('.btn-add-to-cart').on('click', function() {
- if (jQuery(this).hasClass('checkout')) {
- window.location = 'cart.php?a=confdomains';
- return;
- }
- var domain = jQuery(this).attr('data-domain'),
- buttons = jQuery('button[data-domain="' + domain + '"]'),
- whois = jQuery(this).attr('data-whois'),
- isProductDomain = jQuery(this).hasClass('product-domain'),
- btnDomainContinue = jQuery('#btnDomainContinue'),
- resultDomain = jQuery('#resultDomain'),
- resultDomainPricing = jQuery('#resultDomainPricingTerm'),
- idnLanguage = jQuery('#idnLanguageSelector'),
- idnLanguageInput = idnLanguage.find('select');
- if (idnLanguage.is(':visible') && !idnLanguageInput.val()) {
- idnLanguageInput.showInputError();
- return;
- }
- buttons.find('span.to-add').hide();
- buttons.find('span.loading').show();
- var sideOrder =
- ((jQuery(this).parents('.spotlight-tlds').length > 0)
- ||
- (jQuery(this).parents('.suggested-domains').length > 0)) ? 1 : 0;
- var addToCart = WHMCS.http.jqClient.post(
- window.location.pathname,
- {
- a: 'addToCart',
- domain: domain,
- token: csrfToken,
- whois: whois,
- sideorder: sideOrder,
- idnlanguage: idnLanguageInput.val()
- },
- 'json'
- ).done(function (data) {
- buttons.find('span.loading').hide();
- if (data.result === 'added') {
- buttons.find('span.added').show();
- if (!isProductDomain) {
- buttons.removeAttr('disabled').addClass('checkout');
- }
- if (resultDomain.length && !resultDomain.val()) {
- resultDomain.val(domain);
- resultDomainPricing.val(data.period).attr('name', 'domainsregperiod[' + domain +']');
- if (btnDomainContinue.length > 0 && btnDomainContinue.is(':disabled')) {
- btnDomainContinue.removeAttr('disabled');
- }
- }
- jQuery('#cartItemCount').html(data.cartCount);
- } else {
- buttons.find('span.available.price').hide();
- buttons.find('span.unavailable').show();
- buttons.attr('disabled', 'disabled');
- }
- });
- });
- jQuery('#frmDomainTransfer').submit(function (e) {
- e.preventDefault();
- var frmDomain = jQuery('#frmDomainTransfer'),
- transferButton = jQuery('#btnTransferDomain'),
- inputDomain = jQuery('#inputTransferDomain'),
- authField = jQuery('#inputAuthCode'),
- domain = inputDomain.val(),
- authCode = authField.val(),
- redirect = false,
- reCaptchaContainer = jQuery('#divDynamicRecaptcha'),
- captcha = jQuery('#inputCaptcha');
- if (!domain) {
- inputDomain.tooltip('show');
- inputDomain.focus();
- return false;
- }
- inputDomain.tooltip('hide');
- if (jQuery('#captchaContainer').length) {
- validate_captcha(frmDomain);
- return;
- }
- reCaptchaContainer.tooltip('hide');
- captcha.tooltip('hide');
- transferButton.attr('disabled', 'disabled').addClass('disabled')
- .find('span').show().end()
- .find('.loader').show();
- WHMCS.http.jqClient.post(
- frmDomain.attr('action'),
- frmDomain.serialize(),
- null,
- 'json'
- ).done(function (data) {
- if (typeof data != 'object') {
- transferButton.find('span').hide().end()
- .find('#addToCart').show().end()
- .removeAttr('disabled').removeClass('disabled');
- return false;
- }
- var result = data.result;
- if (result == 'added') {
- window.location = 'cart.php?a=confdomains';
- redirect = true;
- } else {
- if (result.isRegistered == true) {
- if (result.epp == true && !authCode) {
- authField.tooltip('show');
- authField.focus();
- }
- } else {
- jQuery('#transferUnavailable').html(result.unavailable)
- .fadeIn('fast', function() {
- setTimeout(function(input) {
- input.fadeOut('fast');
- },
- 3000,
- jQuery(this)
- );
- }
- );
- }
- }
- }).always(function () {
- if (redirect == false) {
- transferButton.find('span').hide().end()
- .find('#addToCart').show().end()
- .removeAttr('disabled').removeClass('disabled');
- }
- });
- });
- jQuery("#btnEmptyCart").click(function() {
- jQuery('#modalEmptyCart').modal('show');
- });
- jQuery("#cardType li a").click(function (e) {
- e.preventDefault();
- jQuery("#selectedCardType").html(jQuery(this).html());
- jQuery("#cctype").val(jQuery('span.type', this).html().trim());
- });
- jQuery(document).on('click', '.domain-contact-support', function(e) {
- e.preventDefault();
- var child = window.open();
- child.opener = null;
- child.location = 'submitticket.php';
- });
- jQuery('#frmConfigureProduct input:visible, #frmConfigureProduct select:visible').first().focus();
- jQuery('#frmProductDomain input[type=text]:visible').first().focus();
- jQuery('#frmDomainChecker input[type=text]:visible').first().focus();
- jQuery('#frmDomainTransfer input[type=text]:visible').first().focus();
- jQuery('.checkout .mc-promo .btn-add').click(function(e) {
- var self = jQuery(this),
- productKey = self.data('product-key'),
- upSellBox = jQuery('#promo_' + productKey);
- self.attr('disabled', 'disabled')
- .find('span.arrow i').removeClass('fa-chevron-right').addClass('fa-spinner fa-spin');
- WHMCS.http.jqClient.post(
- window.location.pathname,
- {
- 'a': 'addUpSell',
- 'product_key': productKey,
- 'checkoutModal': true,
- 'token': csrfToken
- },
- function (data) {
- if (typeof data.modal !== 'undefined') {
- openModal(
- data.modal,
- '',
- data.modalTitle,
- '',
- '',
- data.modalSubmit,
- data.modelSubmitId
- );
- return;
- }
- if (data.done) {
- jQuery('#totalCartPrice').text(data.newTotal);
- upSellBox.fadeOut();
- }
- },
- 'json'
- );
- });
- jQuery('.viewcart .mc-promo .btn-add').click(function(e) {
- var self = jQuery(this);
- self.attr('disabled', 'disabled')
- .find('span.arrow i').removeClass('fa-chevron-right').addClass('fa-spinner fa-spin');
- WHMCS.http.jqClient.post(
- window.location.pathname,
- {
- 'a': 'addUpSell',
- 'product_key': self.data('product-key'),
- 'token': csrfToken
- },
- function (data) {
- if (typeof data.modal !== 'undefined') {
- openModal(
- data.modal,
- '',
- data.modalTitle,
- '',
- '',
- data.modalSubmit,
- data.modelSubmitId
- );
- return;
- }
- window.location.reload(true);
- },
- 'json'
- );
- });
- jQuery(document).on('click', '#btnAddUpSellCheckout', function(e) {
- var upsellModalForm = jQuery('#upsellModalForm');
- WHMCS.http.jqClient.post(
- 'cart.php',
- upsellModalForm.serialize(),
- function (data) {
- if (data.done){
- jQuery('#totalCartPrice').text(data.newTotal);
- }
- },
- 'json'
- );
- return false;
- });
- jQuery(document).on('click', '#btnAddUpSell', function(e) {
- needRefresh = true;
- });
- var useFullCreditOnCheckout = jQuery('#iCheck-useFullCreditOnCheckout'),
- skipCreditOnCheckout = jQuery('#iCheck-skipCreditOnCheckout');
- useFullCreditOnCheckout.on('ifChecked', function() {
- var radio = jQuery('#useFullCreditOnCheckout'),
- selectedPaymentMethod = jQuery('input[name="paymentmethod"]:checked'),
- isCcSelected = selectedPaymentMethod.hasClass('is-credit-card'),
- firstNonCcGateway = jQuery('input[name="paymentmethod"]')
- .not(jQuery('input.is-credit-card[name="paymentmethod"]'))
- .first(),
- container = jQuery('#paymentGatewaysContainer'),
- ccInputFields = jQuery('#creditCardInputFields');
- if (radio.prop('checked')) {
- if (isCcSelected && firstNonCcGateway.length !== 0) {
- firstNonCcGateway.iCheck('check');
- ccInputFields.slideUp();
- container.slideUp();
- } else if (isCcSelected && !container.is(":visible")) {
- ccInputFields.slideDown();
- container.slideDown();
- }
- }
- });
- skipCreditOnCheckout.on('ifChecked', function() {
- var selectedPaymentMethod = jQuery('input[name="paymentmethod"]:checked'),
- isCcSelected = selectedPaymentMethod.hasClass('is-credit-card'),
- container = jQuery('#paymentGatewaysContainer');
- if (!container.is(":visible")) {
- container.slideDown();
- if (isCcSelected) {
- jQuery('#creditCardInputFields').slideDown();
- }
- }
- });
- if (jQuery('#applyCreditContainer').data('apply-credit') === 1 && useFullCreditOnCheckout.length) {
- skipCreditOnCheckout.iCheck('check');
- useFullCreditOnCheckout.iCheck('check');
- }
- jQuery('#domainRenewals').find('span.added').hide().end().find('span.to-add').find('i').hide();
- jQuery('.btn-add-renewal-to-cart').on('click', function() {
- var self = jQuery(this),
- domainId = self.data('domain-id'),
- period = jQuery('#renewalPricing' + domainId).val();
- if (self.hasClass('checkout')) {
- window.location = 'cart.php?a=view';
- return;
- }
- self.attr('disabled', 'disabled').each(function() {
- jQuery(this).find('i').fadeIn('fast').end().css('width', jQuery(this).outerWidth());
- });
- WHMCS.http.jqClient.post(
- WHMCS.utils.getRouteUrl('/cart/domain/renew/add'),
- {
- domainId: domainId,
- period: period,
- token: csrfToken
- },
- null,
- 'json'
- ).done(function (data) {
- self.find('span.to-add').hide();
- if (data.result === 'added') {
- self.find('span.added').show().end().find('i').fadeOut('fast').css('width', self.outerWidth());
- }
- recalculateRenewalTotals();
- });
- });
- jQuery(document).on('submit', '#removeRenewalForm', function(e) {
- e.preventDefault();
- WHMCS.http.jqClient.post(
- whmcsBaseUrl + '/cart.php',
- jQuery(this).serialize() + '&ajax=1'
- ).done(function(data) {
- var domainId = data.i,
- button = jQuery('#renewDomain' + domainId);
- button.attr('disabled', 'disabled').each(function() {
- jQuery(this).find('span.added').hide().end()
- .removeClass('checkout').find('span.to-add').show().end().removeAttr('disabled');
- jQuery(this).css('width', jQuery(this).outerWidth());
- });
- }).always(function () {
- jQuery('#modalRemoveItem').modal('hide');
- recalculateRenewalTotals();
- });
- });
- jQuery('.select-renewal-pricing').on('change', function() {
- var self = jQuery(this),
- domainId = self.data('domain-id'),
- button = jQuery('#renewDomain' + domainId);
- button.attr('disabled', 'disabled').each(function() {
- jQuery(this).css('width', jQuery(this).outerWidth());
- jQuery(this).find('span.added').hide().end()
- .removeClass('checkout').find('span.to-add').show().end().removeAttr('disabled');
- });
- });
- jQuery('#domainRenewalFilter').on('keyup', function() {
- var inputText = jQuery(this).val().toLowerCase();
- jQuery('#domainRenewals').find('div.domain-renewal').filter(function() {
- jQuery(this).toggle(jQuery(this).data('domain').toLowerCase().indexOf(inputText) > -1);
- });
- });
- checkoutForm = jQuery('#frmCheckout');
- if (checkoutForm.length) {
- checkoutForm.on('submit', validateCheckoutCreditCardInput);
- }
- if (existingCardContainer.is(':visible')) {
- newCardInfo.slideUp();
- }
- });
- //checkoutForm
- function validateCheckoutCreditCardInput(e)
- {
- var newOrExisting = jQuery('input[name="ccinfo"]:checked').val(),
- submitButton = checkoutForm.find('*[type="submit"]'),
- cardType = null,
- submit = true,
- selectedPaymentMethod = checkoutForm.find('input[name="paymentmethod"]:checked'),
- isCreditCardGateway = selectedPaymentMethod.hasClass('is-credit-card'),
- isRemoteCard = selectedPaymentMethod.data('payment-type') === 'RemoteCreditCard',
- cardNumber = jQuery('#inputCardNumber');
- checkoutForm.find('.form-group').removeClass('has-error');
- checkoutForm.find('.field-error-msg').hide();
- if (isCreditCardGateway && !isRemoteCard) {
- var cvvField = checkoutForm.find('#inputCardCVV2');
- if (newOrExisting === 'new') {
- cvvField = checkoutForm.find('#inputCardCVV');
- cardType = jQuery.payment.cardType(checkoutForm.find('#inputCardNumber').val());
- if (!jQuery.payment.validateCardNumber(checkoutForm.find('#inputCardNumber').val()) || cardNumber.hasClass('unsupported')) {
- var error = cardNumber.data('message-invalid');
- if (cardNumber.hasClass('unsupported')) {
- error = cardNumber.data('message-unsupported');
- }
- checkoutForm.find('#inputCardNumber').setInputError(error).showInputError();
- submit = false;
- }
- if (
- !jQuery.payment.validateCardExpiry(
- checkoutForm.find('#inputCardExpiry').payment('cardExpiryVal')
- )
- ) {
- checkoutForm.find('#inputCardExpiry').showInputError();
- submit = false;
- }
- }
- if (!jQuery.payment.validateCardCVC(cvvField.val(), cardType)) {
- cvvField.showInputError();
- submit = false;
- }
- if (!submit) {
- submitButton.prop('disabled', false)
- .removeClass('disabled')
- .find('i')
- .removeAttr('class')
- .addClass('fas fa-arrow-circle-right');
- e.preventDefault();
- }
- }
- }
- function hasDomainLookupEnded() {
- domainLookupCallCount++;
- if (domainLookupCallCount == 3) {
- jQuery('#btnCheckAvailability').removeAttr('disabled').removeClass('disabled');
- }
- }
- function hasProductDomainLookupEnded(total, button) {
- domainLookupCallCount++;
- if (domainLookupCallCount == total) {
- button.removeAttr('disabled').removeClass('disabled');
- jQuery('input[name="domainoption"]').iCheck('enable');
- }
- }
- function domainGotoNextStep() {
- jQuery("#domainLoadingSpinner").show();
- jQuery("#frmProductDomainSelections").submit();
- }
- function removeItem(type, num) {
- jQuery('#inputRemoveItemType').val(type);
- jQuery('#inputRemoveItemRef').val(num);
- jQuery('#modalRemoveItem').modal('show');
- }
- function updateConfigurableOptions(i, billingCycle) {
- WHMCS.http.jqClient.post("cart.php", 'a=cyclechange&ajax=1&i='+i+'&billingcycle='+billingCycle,
- function(data) {
- jQuery("#productConfigurableOptions").html(jQuery(data).find('#productConfigurableOptions').html());
- jQuery('input').iCheck({
- inheritID: true,
- checkboxClass: 'icheckbox_square-blue',
- radioClass: 'iradio_square-blue',
- increaseArea: '20%'
- });
- }
- );
- recalctotals();
- }
- function recalctotals() {
- if (!jQuery("#orderSummaryLoader").is(":visible")) {
- jQuery("#orderSummaryLoader").fadeIn('fast');
- }
- var thisRequestId = Math.floor((Math.random() * 1000000) + 1);
- window.lastSliderUpdateRequestId = thisRequestId;
- var post = WHMCS.http.jqClient.post("cart.php", 'ajax=1&a=confproduct&calctotal=true&'+jQuery("#frmConfigureProduct").serialize());
- post.done(
- function(data) {
- if (thisRequestId == window.lastSliderUpdateRequestId) {
- jQuery("#producttotal").html(data);
- }
- }
- );
- post.always(
- function() {
- jQuery("#orderSummaryLoader").delay(500).fadeOut('slow');
- }
- );
- }
- function recalculateRenewalTotals() {
- if (!jQuery("#orderSummaryLoader").is(":visible")) {
- jQuery("#orderSummaryLoader").fadeIn('fast');
- }
- var thisRequestId = Math.floor((Math.random() * 1000000) + 1);
- window.lastSliderUpdateRequestId = thisRequestId;
- WHMCS.http.jqClient.get(
- WHMCS.utils.getRouteUrl('/cart/domain/renew/calculate')
- ).done(function(data) {
- if (thisRequestId === window.lastSliderUpdateRequestId) {
- jQuery("#producttotal").html(data.body);
- }
- }).always(
- function() {
- jQuery("#orderSummaryLoader").delay(500).fadeOut('slow');
- }
- );
- }
- function selectDomainPricing(domainName, price, period, yearsString, suggestionNumber) {
- jQuery("#domainSuggestion" + suggestionNumber).iCheck('check');
- jQuery("[name='domainsregperiod[" + domainName + "]']").val(period);
- jQuery("[name='" + domainName + "-selected-price']").html('<b class="glyphicon glyphicon-shopping-cart"></b>'
- + ' ' + period + ' ' + yearsString + ' @ ' + price);
- }
- function selectDomainPeriodInCart(domainName, price, period, yearsString) {
- var loader = jQuery("#orderSummaryLoader");
- if (loader.not(':visible')) {
- loader.fadeIn('fast');
- }
- jQuery("[name='" + domainName + "Pricing']").html(period + ' ' + yearsString + ' <span class="caret"></span>');
- jQuery("[name='" + domainName + "Price']").html(price);
- var update = WHMCS.http.jqClient.post(
- window.location.pathname,
- {
- domain: domainName,
- period: period,
- a: 'updateDomainPeriod',
- token: csrfToken
- }
- );
- update.done(
- function(data) {
- if (data.forceReload) {
- window.location.reload();
- return;
- }
- data.domains.forEach(function(domain) {
- jQuery("[name='" + domain.domain + "Price']").parent('div').find('.renewal-price').html(
- domain.prefixedRenewPrice + domain.shortRenewalYearsLanguage
- );
- });
- jQuery('#subtotal').html(data.subtotal);
- if (data.promotype) {
- jQuery('#discount').html(data.discount);
- }
- if (data.taxrate) {
- jQuery('#taxTotal1').html(data.taxtotal);
- }
- if (data.taxrate2) {
- jQuery('#taxTotal2').html(data.taxtotal2);
- }
- var recurringSpan = jQuery('#recurring');
- recurringSpan.find('span:visible').not('span.cost').fadeOut('fast');
- if (data.totalrecurringannually) {
- jQuery('#recurringAnnually').fadeIn('fast').find('.cost').html(data.totalrecurringannually);
- }
- if (data.totalrecurringbiennially) {
- jQuery('#recurringBiennially').fadeIn('fast').find('.cost').html(data.totalrecurringbiennially);
- }
- if (data.totalrecurringmonthly) {
- jQuery('#recurringMonthly').fadeIn('fast').find('.cost').html(data.totalrecurringmonthly);
- }
- if (data.totalrecurringquarterly) {
- jQuery('#recurringQuarterly').fadeIn('fast').find('.cost').html(data.totalrecurringquarterly);
- }
- if (data.totalrecurringsemiannually) {
- jQuery('#recurringSemiAnnually').fadeIn('fast').find('.cost').html(data.totalrecurringsemiannually);
- }
- if (data.totalrecurringtriennially) {
- jQuery('#recurringTriennially').fadeIn('fast').find('.cost').html(data.totalrecurringtriennially);
- }
- jQuery('#totalDueToday').html(data.total);
- }
- );
- update.always(
- function() {
- loader.delay(500).fadeOut('slow');
- }
- );
- }
- function loadMoreSuggestions()
- {
- var suggestions = jQuery('#domainSuggestions'),
- suggestionCount;
- for (suggestionCount = 1; suggestionCount <= 10; suggestionCount++) {
- if (furtherSuggestions > 0) {
- suggestions.find('div.domain-suggestion.clone:hidden:first').slideDown();
- furtherSuggestions = suggestions.find('div.domain-suggestion.clone:hidden').length;
- } else {
- jQuery('div.more-suggestions').find('a').addClass('hidden').end().find('span.no-more').removeClass('hidden');
- return;
- }
- }
- }
- function validate_captcha(form)
- {
- var reCaptcha = jQuery('#g-recaptcha-response'),
- reCaptchaContainer = jQuery('#divDynamicRecaptcha'),
- captcha = jQuery('#inputCaptcha');
- if (reCaptcha.length && !reCaptcha.val()) {
- reCaptchaContainer.tooltip('show');
- return false;
- }
- if (captcha.length && !captcha.val()) {
- captcha.tooltip('show');
- return false;
- }
- var validate = WHMCS.http.jqClient.post(
- form.attr('action'),
- form.serialize() + '&a=validateCaptcha',
- null,
- 'json'
- );
- validate.done(function(data) {
- if (data.error) {
- jQuery('#inputCaptcha').attr('data-original-title', data.error).tooltip('show');
- if (captcha.length) {
- jQuery('#inputCaptchaImage').replaceWith(
- '<img id="inputCaptchaImage" src="' + whmcsBaseUrl + '/includes/verifyimage.php?nocache=' + new Date().getTime() + '" align="middle" />'
- );
- }
- } else {
- jQuery('#captchaContainer').remove();
- form.trigger('submit');
- }
- });
- }
|