// // var rightContent = $("#element"); var cPG = rGet(curl, 'pg'); if (cPG == '') cPG = '24'; $("#pg_" + cPG).addClass("on"); setcPg(cPG); $('.cloud_products dl').each(function (i) { var _t_h = $(this).height() + 10, _t_w = $(this).width() - 250; $(this).find('dt').css({ 'height': _t_h + 'px', 'line-height': _t_h + 'px' }); $(this).find('.products_local').animate(({ 'width': _t_w + 'px' }), 1000); }); var oslist = new Array(); oslist[0] = '11,Windows 2012 R2 标准版|18,Windows 2016 标准版'.split('|'); oslist[1] = '4,CentOS 6 64bit|14,CentOS 7 64bit|20,CentOS 8 64bit|15,Debian 10 64bit|10,Ubuntu 18 64bit'.split('|'); var pList = rightContent.find("#taocanText"); var cloudData; var plist = ''; function setcPg(cPg) { $.getJSON("process.aspx?c=jsapi&action=product&groupid=" + cPg + "&" + new Date(), function (rdata) { if (rdata == null) return false; pList.html(''); cloudData = rdata; plist = ''; sevi = 0; si = 1; $(rdata).each(function (i) { if (rdata[i].phidden == 0) { plist += ''; if (si) { sevi = i; si = 0; } } }); if (plist == "") { alert('该线路暂时缺货,请选择其它,谢谢。'); rightContent.find("#xianluText label").attr("class", ''); rightContent.find("#xianluText label[data='" + cPG + "']").attr("class", 'local'); setcPg(cPG); return false; } // KVM if (cloudData[0].pconfig.plantraffic != undefined) { oslist[0] = '8,Windows-2008R2-Datacenter-cn|9,Windows-2012R2-Datacenter-cn|10,Windows-2016-Datacenter-cn|11,Windows-2019-Datacenter-cn|55,Windows-2022-Datacenter-cn'.split('|'); oslist[1] = '58,CentOS-7.9.2111-x64|54,CentOS-8-Stream-x64|62,CentOS-9-Stream-x64|57,Debian-11.1-x64|32,Ubuntu-20.04.1-x64|59,Ubuntu-22.04-x64|65,Rocky-linux-8.8-x64|66,Rocky-linux-9.2-x64|67,AlmaLinux-8.8-x64|68,AlmaLinux-9.2-x64'.split('|'); //oslist[0] = '8,Windows-2008R2-Datacenter-cn|9,Windows-2012R2-Datacenter-cn|10,Windows-2016-Datacenter-cn|11,Windows-2019-Datacenter-cn|55,Windows-2022-Datacenter-cn'.split('|'); //oslist[1] = '58,CentOS-7.9.2111-x64|54,CentOS-8-Stream-x64|62,CentOS-9-Stream-x64|57,Debian-11.1-x64|7,Ubuntu-18.04-x64|32,Ubuntu-20.04.1-x64|59,Ubuntu-22.04-x64'.split('|'); } pList.find("span").remove(); pList.append(plist); customCloucd(sevi); } ); } var cData; rGet(curl, 'pg') function customCloucd(num) { cData = cloudData[num]; cData.cltitle = rightContent.find("#xianluText .local").text(); pList.find("label").removeClass("local"); pList.find("#p_" + num).addClass("local"); if (cData.pconfig.ram_max == undefined) { cData.pconfig.ram_max = cData.pconfig.mem; } if (cData.pconfig.disk == undefined) { cData.pconfig.disk = cData.pconfig.hdd; } if (cData.pconfig.port == undefined) { cData.pconfig.port = cData.pconfig.netupbandwidth; } if (cData.pconfig.bw == undefined) { cData.pconfig.bw = cData.pconfig.plantraffic; } cloudData[num].pconfig = cData.pconfig; showCloudInfo(cData); var allowOS = cData.pconfig.allowos, tempStr = new Array(), os, i, j, os_win = $('#os_win'), os_linux = $('#os_linux'), osthis = new Array(os_win, os_linux), clstr = ''; for (i = 0; i < oslist.length; i++) { tempStr[i] = ''; for (j = 0; j < oslist[i].length; j++) { os = oslist[i][j].split(','); if (allowOS != '0' && (',' + allowOS + ',').indexOf(',' + os[0] + ',') < 0) continue; tempStr[i] += '' + os[1] + '' } } var oscfg = $('.sys_select .osCfg'); oscfg.find('input').val(''); $('.osMenu .select_con a').click(function () { var _tid = $(this).attr('data-ostype'), oscfg = $('.sys_select .osCfg'), _input = $('.sys_select input'); oscfg.find('.select_con').html(tempStr[_tid]); oscfg.find('.select_tit').removeClass('on').find('a').html('请选择操作系统版本'); oscfg.find('input').val(''); $('#prv-os').html('-'); }); var ipMin = cData.pconfig.ipc == undefined ? 1 : parseInt(cData.pconfig.ipc); var ipMax = cData.pupgrade.ip_max == undefined ? 1 : parseInt(cData.pupgrade.ip_max); if (ipMax < ipMin) ipMax = ipMin; var snapshotMin = cData.pconfig.snapshot == undefined ? 0 : parseInt(cData.pconfig.snapshot); var snapshotMax = cData.pupgrade.snapshot_max == undefined ? 0 : parseInt(cData.pupgrade.snapshot_max); if (snapshotMax < snapshotMin) snapshotMax = snapshotMin; var fullBackupMin = cData.pconfig.full_backup == undefined ? 0 : parseInt(cData.pconfig.full_backup); var fullBackupMax = cData.pupgrade.full_backup_max == undefined ? 0 : parseInt(cData.pupgrade.full_backup_max); if (fullBackupMax < fullBackupMin) fullBackupMax = fullBackupMin; var tempStrs = ''; for (i = ipMin; i <= ipMax; i++) { tempStrs += '' + i.toString() + '个IP地址   ' + (i > ipMin ? ((i - ipMin) * cData.pupgrade.ip) + '元/月' : '') + '' } $("#ipcount .select_con").html(tempStrs); tempStrs = ''; for (i = snapshotMin; i <= snapshotMax; i++) tempStrs += '' + i.toString() + '个快照备份   ' + (i > snapshotMin ? ((i - snapshotMin) * cData.pupgrade.snapshot_price) + '元/月' : '') + ''; $("#snapshot .select_con").html(tempStrs); tempStrs = ''; for (i = fullBackupMin; i <= fullBackupMax; i++) tempStrs += '' + i.toString() + '个完整备份   ' + (i > fullBackupMin ? ((i - fullBackupMin) * cData.pupgrade.full_backup_price) + '元/月' : '') + ''; $("#full_backup .select_con").html(tempStrs); var mincpu = parseFloat(cData.pconfig.cpu); var maxcpu = parseFloat(cData.pupgrade.cpu_max); var cpu_step = parseFloat(cData.pupgrade.cpu_step); var cpu_price = parseFloat(cData.pupgrade.cpu_price); var minram = parseFloat(cData.pconfig.ram_max); var maxram = parseFloat(cData.pupgrade.ram_max); var ram_step = parseFloat(cData.pupgrade.ram_step); var ram_price = parseFloat(cData.pupgrade.ram_price); var mindisk = parseFloat(cData.pconfig.disk); var maxdisk = parseFloat(cData.pupgrade.disk_max); var disk_step = parseFloat(cData.pupgrade.disk_step); var disk_price = parseFloat(cData.pupgrade.disk_price); var minbw = parseFloat(cData.pconfig.bw); var maxbw = parseFloat(cData.pupgrade.bw_max); var bw_step = parseFloat(cData.pupgrade.bw_step); var bw_price = parseFloat(cData.pupgrade.bw_price); if (cData.pconfig.bw == '0') { minbw = 0; maxbw = 0; } var minport = parseFloat(cData.pconfig.port); var maxport = parseFloat(cData.pupgrade.port_max); var port_step = parseFloat(cData.pupgrade.port_step); var port_price = parseFloat(cData.pupgrade.port_price); rightContent.find("#ramText span:eq(1) b").text(maxram + "M"); rightContent.find("#diskText span:eq(1) b").text(maxdisk + "G"); rightContent.find("#portText span:eq(1) b").text(maxport + "M"); rightContent.find("#bwText span:eq(1) b").text((maxbw == 0 || maxbw == 'undefined' ? "不限流量" : maxbw + "G")); cloudSlider(mincpu, maxcpu, cpu_step, cpu_price, minram, maxram, ram_step, ram_price, mindisk, maxdisk, disk_step, disk_price, minbw, maxbw, bw_step, bw_price, minport, maxport, port_step, port_price); updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); rightContent.find(".price_select").change(function () { updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); }); } var vcpu = rightContent.find("#vcpu"); var vram = rightContent.find("#vram"); var vdisk = rightContent.find("#vdisk"); var vbw = rightContent.find("#vbw"); var vport = rightContent.find("#vport"); var sl_cpu = rightContent.find("#cpuText"); var sl_ram = rightContent.find("#sl_ram"); var sl_disk = rightContent.find("#sl_disk"); var sl_port = rightContent.find("#sl_port"); var sl_bw = rightContent.find("#sl_bw"); function cloudSlider(mincpu, maxcpu, cpu_step, cpu_price, minram, maxram, ram_step, ram_price, mindisk, maxdisk, disk_step, disk_price, minbw, maxbw, bw_step, bw_price, minport, maxport, port_step, port_price) { $('.selectDiv').hover(function () { var _input = $(this).find('input'), _name = _input.attr('name'), _con = $(this).find('.select_con'), _tit = $(this).find('.select_tit'); _con.show(); _tit.find('b').animate(({ 'border-width': '0 5px 5px' }), 300); if (_tit.hasClass('on')) { _tit.find('b').css({ 'border-color': '#fff transparent' }) } else { _tit.find('b').css({ 'border-color': '#E33631 transparent' }) } _con.find('a').click(function () { var _con_html = $(this).html(), _val = $(this).attr('data-ostype'); _tit.addClass('on').find('a').html(_con_html); _input.val(_val); if (_name == 'ipcount') { $('#prv-ipcount').html(_val + '个') } if (_name == 'os') { $('#prv-os').html(_con_html) } _con.hide(); updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); }); }, function () { var _con = $(this).find('.select_con'), _tit = $(this).find('.select_tit'); _con.hide(); _tit.find('b').stop().animate(({ 'border-width': '5px 5px 0' }), 300); if (_tit.hasClass('on')) { _tit.find('b').css({ 'border-color': '#fff transparent' }) } else { _tit.find('b').css({ 'border-color': '#181E54 transparent' }) } }); var ccpu = '2,4,6,8,10,12,16,18,20,22,24', _html = ''; if (ccpu != '' && ccpu != '";') { var strs = new Array(); strs = ccpu.split(','); if (strs.length > 0) { for (var i = 0; i < strs.length; i++) { if (strs[i] != '' && strs[i] >= mincpu && strs[i] <= maxcpu) { _html += ''; } } } else { for (var i = mincpu; i <= maxcpu; i++) { _html += ''; } } } else { for (var i = mincpu; i <= maxcpu; i++) { _html += ''; } } sl_cpu.html(_html); sl_cpu.find('label').click(function () { $(this).addClass('local').siblings().removeClass('local'); vcpu.val($(this).attr('data-val')); $('#cpu_txt').html($(this).attr('data-val')); updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); }); sl_cpu.children().eq(0).click(); sl_ram.slider({ range: "min", value: minram, min: 0, max: maxram, step: ram_step, slide: function (event, ui) { vram.val(ui.value); if (ui.value > 0) { add_folat_val(sl_ram, ui.value, 'M'); } updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); }, stop: function (event, ui) { if (parseInt(ui.value) < minram) { sl_ram.slider("value", minram); vram.val(minram); add_folat_val(sl_ram, minram, 'M'); $('#ram_txt').html(minram + "M"); } else { sl_ram.attr("title", ui.value + "M"); $('#ram_txt').html(ui.value + "M"); } updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); } }); vram.val(minram); add_folat_val(sl_ram, minram, 'M'); sl_ram.slider("value", minram); sl_ram.attr("title", minram + "M"); sl_disk.slider({ range: "min", value: mindisk, min: 0, max: maxdisk, step: disk_step, slide: function (event, ui) { vdisk.val(ui.value); if (ui.value > 0) { add_folat_val(sl_disk, ui.value, 'G'); } updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); }, stop: function (event, ui) { if (parseInt(ui.value) < mindisk) { sl_disk.slider("value", mindisk); vdisk.val(mindisk); add_folat_val(sl_disk, mindisk, 'G'); } else sl_disk.attr("title", ui.value + "G"); updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); } }); vdisk.val(mindisk); add_folat_val(sl_disk, mindisk, 'G'); sl_disk.slider("value", mindisk); sl_disk.attr("title", mindisk + "G"); if (minport == 0) minport = maxport; sl_port.slider({ range: "min", value: minport, min: 0, max: maxport, step: port_step, slide: function (event, ui) { vport.val(ui.value); if (ui.value > 0) { add_folat_val(sl_port, ui.value, 'M'); } updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); }, stop: function (event, ui) { if (parseInt(ui.value) < minport) { sl_port.slider("value", minport); vport.val(minport); add_folat_val(sl_port, minport, 'M'); } else sl_port.attr("title", ui.value + "M"); updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); } }); vport.val(minport); add_folat_val(sl_port, minport, 'M'); sl_port.slider("value", minport); sl_port.attr("title", minport + "M"); var minVal = 0; if (maxbw == 0) { minVal = -1; vbw.css("display", "none"); } else vbw.css("display", ""); sl_bw.slider({ range: "min", value: minbw, min: minVal, max: maxbw, step: bw_step, slide: function (event, ui) { vbw.val(ui.value); if (ui.value > 0) { add_folat_val(sl_bw, ui.value, 'G'); } updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); }, stop: function (event, ui) { if (parseInt(ui.value) < minbw) { sl_bw.slider("value", minbw); vbw.val(minbw); } else { if (maxbw == 0 || maxbw == 'undefined') sl_bw.attr("title", "不限流量"); else sl_bw.attr("title", ui.value + "G"); } updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step); } }); vbw.val(minbw); sl_bw.slider("value", minbw); if (maxbw == 0 || maxbw == 'undefined') sl_bw.attr("title", "不限流量"); else sl_bw.attr("title", minbw + "G"); } function add_folat_val(obj, val, os) { var t = obj.find('a.ui-slider-handle'), str = '' + val + os + '', prv_id = obj.attr('id'), prv_t = $('#prv-' + prv_id); prv_t.html(val + os); t.html(str); var s = t.find('span'), s_w = (s.width() + 6) / 2; s.css({ 'left': -s_w + 'px' }); } function updatePrice(mincpu, cpu_price, cpu_step, minram, ram_price, ram_step, mindisk, disk_price, disk_step, minbw, bw_price, bw_step, minport, port_price, port_step) { var addPrice = (parseFloat(vcpu.val()) - mincpu) * cpu_price / cpu_step; addPrice += (parseFloat(vram.val()) - minram) * ram_price / ram_step; addPrice += (parseFloat(vdisk.val()) - mindisk) * disk_price / disk_step; if (minbw > 0) addPrice += (parseFloat(vbw.val()) - minbw) * bw_price / bw_step; if (minport > 0) addPrice += (parseFloat(vport.val()) - minport) * port_price / port_step; var ipMin = cData.pconfig.ipc == undefined ? 1 : parseInt(cData.pconfig.ipc); var snapshotMin = cData.pconfig.snapshot == undefined ? 0 : parseInt(cData.pconfig.snapshot); var fullBackupMin = cData.pconfig.full_backup == undefined ? 0 : parseInt(cData.pconfig.full_backup); var addIPC = rightContent.find("#ipcount input").val() == undefined ? ipMin : parseInt(rightContent.find("#ipcount input").val()); var addSnapshot = rightContent.find("#snapshot input").val() == undefined ? snapshotMin : parseInt(rightContent.find("#snapshot input").val()); var addFullBackup = rightContent.find("#full_backup input").val() == undefined ? fullBackupMin : parseInt(rightContent.find("#full_backup input").val()); addIPC = addIPC - ipMin; addSnapshot = addSnapshot - snapshotMin; addFullBackup = addFullBackup - fullBackupMin; if (addIPC > 0) addPrice += addIPC * parseFloat(cData.pupgrade.ip); if (addSnapshot > 0) addPrice += addSnapshot * parseFloat(cData.pupgrade.snapshot_price); if (addFullBackup > 0) addPrice += addFullBackup * parseFloat(cData.pupgrade.full_backup_price); var priceList = ''; var pps = cData.pprice.cprice.split(','); var pcs = cData.pprice.cycle.split(','); var p; for (p = 0; p < pps.length; p++) { if (pps[p] != '0') { priceList += ''; } } rightContent.find(".price_confi").html(priceList); rightContent.find(".price_confi input:radio:first").attr("checked", "checked").parent().parent().addClass('local'); $('.prv-price').html($('.price_confi label:first b').html()); rightContent.find(".price_confi label").bind('click', function () { $(this).addClass('local').siblings().removeClass('local'); $('.prv-price').html($(this).find('b').html()); $(this).find("input:radio").attr("checked", "checked"); }); } function showCloudInfo(info) { var port = info.pconfig['port'] == '0' ? info.pupgrade.port_max : info.pconfig['port'], bw = info.pconfig['bw'] == '0' ? '不限流量' : info.pconfig['bw'] + "G", ram = parseFloat(typeof (info.pconfig['ram']) == 'undefined' ? info.pconfig['ram_max'] : info.pconfig['ram']), tname = $('#pg_' + info.pgid + ' a').attr('title'); var preview_str = ''; preview_str = '
' + info.pname + '
' + '
' + tname + '
' + '
CPU' + info.pconfig['cpu'] + '核,内存' + ram + 'M
' + '
' + info.pconfig['disk'] + 'G
' + '
' + port + 'bps(BGP)
' + '
' + bw + '
' + '
' + info.pconfig['ipc'] + '
' + '
-
' + '
立即购买
'; $(".preview dl").html(preview_str); } function cloudOrder(action) { if (userID == '') { userLogin(0, 'cmd:cloudOrder(1);'); } else { var cPrice = rightContent.find(".price_confi input:radio:checked").parent(); var billingCycle = cPrice.find("input:radio:checked").val(); var amount = parseFloat(cPrice.find("span").text()); checkout(cData.pid, billingCycle, '', amount); } } $(function () { $(window).scroll(function () { var cloudModel = $('.cloudModel'), body_h = $('body').height(), m_w = $('.preview_box').width(), clouds = $('.clouds'), preview_fix = $('.preview'), clouds_off = clouds.offset(), s_top = $(window).scrollTop(), curs = clouds_off.top + clouds.height() - preview_fix.height(), cm_top = s_top - curs + 10; cloudModel.css({ 'height': clouds.height() + 'px' }); preview_fix.css({ 'width': m_w + 'px' }); if (s_top >= clouds_off.top) { preview_fix.addClass("fixed"); if (s_top > curs) { preview_fix.css({ 'top': -cm_top + 'px' }); } } else { preview_fix.css({ 'top': '0px' }); preview_fix.removeClass('fixed'); } }) })