//
///
///
///
//
var rightContent = $("#rightContent");
var cPG = rGet(curl, 'pg');
if (cPG == '') cPG = '20';
var cPGS=('24,29,2,20,19,23,5,25,3,4,47,64,48,62,63').split(",");
var cPGS_str="";
var cPGS_g=new Array("华中联通100G","阿里云线路上海","香港CN2","日本CN2","新加坡BGP","阿里云线路深圳","阿里云香港linux主机","美国CN2双向直连","韩国BGP","阿里云线路青岛","新加坡高防120G","华为云线路贵阳","阿里云线路成都","阿里云线路呼和浩特","阿里云线路张家口");
for (ci = 0; ci < cPGS.length; ci++) {
cspg = cPGS[ci];
if(cspg!="") { if(cPG==cspg){cPGS_str+='"; gv=false;} else cPGS_str+='"; }
}
rightContent.find("#xianluText").html(cPGS_str).find('label').click(function(){$(this).parent().find("label").attr("class",'');$(this).attr("class",'local');setcPg($(this).attr('data'));});
setcPg(cPG);
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;}
pList.find("span").remove();
pList.append(plist);
customCloucd(sevi);
});
}
var cData;
var oslist = '16,Windows 2003 R2|1,Windows 2003 R2 64bit|4,Windows 7 32bit|2,Windows 2008 R2|25,Windows 2012 R2|28,Windows 2008 R2N|31,Windows 2012 R2G|32,Windows 2016 R2G|34,Windows 2003 R2G|5,CentOS 5 32bit|6,CentOS 5 64bit|7,CentOS 6 32bit|8,CentOS 6 64bit|24,CentOS 7 64bit|29,CentOS 7.6 64bitG|30,CentOS 6 64bitG|35,CentOS 64bitG|13,Debian 6 32bit|14,Debian 6 64bit|87,Debian 7 32bit|23,Debian 7 64bit|9,Ubuntu 10 32bit|10,Ubuntu 10 64bit|11,Ubuntu 12 32bit|12,Ubuntu 12 64bit|92,Ubuntu 14 64bit'.split('|');
function customCloucd(num) {
//alert(num + " " + cloudData[num].pname);
cData = cloudData[num];
showCloudInfo(cData);
cData.cltitle=rightContent.find("#xianluText .local").text();
//cData.cltitle=rightContent.find("#p_"+num+"").attr('title');
pList.find("label").removeClass("local");
pList.find("#p_" + num).addClass("local");
rightContent.find(".sys_select select option").remove();
var allowOS = cData.pconfig.allowos, tempStr = '';
var os;
var i;
for (i = 0; i < oslist.length; i++) {
os = oslist[i].split(',');
if (allowOS != '0' && (',' + allowOS + ',').indexOf(',' + os[0] + ',') < 0) continue;
tempStr += '';
}
rightContent.find("#oslist select").append(tempStr);
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;
tempStr = '';
for (i = ipMin; i <= ipMax; i++) tempStr += '';
rightContent.find("#ipcount select").append(tempStr);
tempStr = '';
for (i = snapshotMin; i <= snapshotMax; i++) tempStr += '';
rightContent.find("#backup select[name='snapshot']").append(tempStr);
tempStr = '';
for (i = fullBackupMin; i <= fullBackupMax; i++) tempStr += '';
rightContent.find("#backup select[name='full_backup']").append(tempStr);
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);
tempStr = '';
var my_cpu=new Array("","单核","双核","","四核","","六核","","八核");
var vi=mincpu;
for (i = mincpu; i <= maxcpu; i++)
{
vi=i;
if(my_cpu[vi]!=""){
if(vi<= maxcpu){
if(vi==mincpu)tempStr += ''+my_cpu[vi]+'';
else tempStr += ''+my_cpu[vi]+'';}
}
}
rightContent.find("#cpuText").html(tempStr);
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("#cpuText span:eq(1) b").text(maxcpu + "核");
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 + "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("#sl_cpu");
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) {
sl_cpu.slider({
range: "min",
value: mincpu,
min: 0,
max: maxcpu,
step: cpu_step,
slide: function (event, ui) {
vcpu.val(ui.value);
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) < mincpu) {
sl_cpu.slider("value", mincpu);
vcpu.val(mincpu);
} else sl_cpu.attr("title", ui.value + "核");
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);
}
});
vcpu.val(mincpu);
sl_cpu.slider("value", mincpu);
sl_cpu.attr("title", mincpu + "核");
sl_ram.slider({
range: "min",
value: minram,
min: 0,
max: maxram,
step: ram_step,
slide: function (event, ui) {
vram.val(ui.value);
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);
} else sl_ram.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);
}
});
vram.val(minram);
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);
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);
} 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);
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);
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);
} 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);
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);
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) 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) sl_bw.attr("title", "不限流量");
else sl_bw.attr("title", minbw + "G");
}
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("select[name='ipcount']").val() == undefined ? ipMin : parseInt(rightContent.find("select[name='ipcount']").val());
var addSnapshot = rightContent.find("select[name='snapshot']").val() == undefined ? snapshotMin : parseInt(rightContent.find("select[name='snapshot']").val());
var addFullBackup = rightContent.find("select[name='full_backup']").val() == undefined ? fullBackupMin : parseInt(rightContent.find("select[name='full_backup']").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');
rightContent.find(".price_confi label").bind('click',function(){
$(this).addClass('local').siblings().removeClass('local');
$(this).find("input:radio").attr("checked", "checked");
});
}
function showCloudInfo(info) {
var thePrice = getPrice(info.pprice, info.psconfig, -1);
$("#jgyl").find(".cloudParam li").remove();
var str = '
CPU:' + info.pconfig['cpu'] + '核 ' +
'内存: ' + parseFloat(typeof (info.pconfig['ram']) == 'undefined' ? info.pconfig['ram_max'] : info.pconfig['ram']) + 'MB ' +
'硬盘: ' + info.pconfig['disk'] + 'GB ' +
'端口:' + (info.pconfig['port'] == '0' || cData.pconfig.port == cData.pupgrade.port_max ? '不限端口' : '' + info.pconfig['port'] + ' MB') + '' +
'流量: ' + (info.pconfig['bw'] == '0' ? '不限流量' : '' + info.pconfig['bw'] + ' GB ') + '' +
'IP: ' + info.pconfig['ipc'] + '个IP地址' +
//'系统:-' +
'价格: ' + thePrice + '';
$("#jgyl").find(".cloudParam").append(str);
$("#jgyl").find(".ParamPrice").html('');
}
function cloudOrder(action) {
if (action == 0) {
if (userID == '') userLogin(0, 'cmd:cloudOrder(1);');
else cloudOrder(1);
}
else if (action == 1) {
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());
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 ipcount = rightContent.find("select[name='ipcount']").val() == undefined ? ipMin : parseInt(rightContent.find("select[name='ipcount']").val());
var snapshot = rightContent.find("select[name='snapshot']").val() == undefined ? snapshotMin : parseInt(rightContent.find("select[name='snapshot']").val());
var full_backup = rightContent.find("select[name='full_backup']").val() == undefined ? fullBackupMin : parseInt(rightContent.find("select[name='full_backup']").val());
var str = '';
swin.html(str);
swin.dialog({ title: "配置清单", autoOpen: false,dialogClass:'unmntip-buy', resizable: false, width: 388, modal: true}).dialog("open");
}
}