function calculate()  {

var serverQty = (1*document.form1.serverQty.value);
var workload = (1*document.form1.workload.value)/100;
var serverMax = 0;
var serverIdle = 0;

if ((1*document.form1.server.value) == 1) {
	serverMax = serverQty*236;
	serverIdle = serverQty*153;
} else if ((1*document.form1.server.value) == 2) {
	serverMax = serverQty*353;
	serverIdle = serverQty*192;
} 

if (serverQty == 2) {
	//Add clustering card power (2*4.8)
	serverMax = serverMax + 9.6;
	serverIdle = serverIdle + 9.6;
}

var storageMax = 
	(274*document.form1.j4400_1.value) +
	(254*document.form1.j4400_2.value) +
	(234*document.form1.j4400_3.value) +
	(547*document.form1.j4400_4.value) +
	(527*document.form1.j4400_5.value) +
	(508*document.form1.j4400_6.value) +
	(469*document.form1.j4400_7.value);

var storageIdle = 
	(194*document.form1.j4400_1.value) +
	(181*document.form1.j4400_2.value) +
	(168*document.form1.j4400_3.value) +
	(388*document.form1.j4400_4.value) +
	(375*document.form1.j4400_5.value) +
	(362*document.form1.j4400_6.value) +
	(336*document.form1.j4400_7.value);


var ssd=(3.2*document.form1.ssd.value);
var backup=(1*document.form1.backup.value);
var network=(1*document.form1.nic.value);

var ethernet=(10*document.form1.ethernet.value);

var total_max=serverMax+storageMax+ssd+backup+network+ethernet;
var total_idle=serverIdle+storageIdle+ssd+backup+network+ethernet;

var tot=Math.round((100*((total_idle+((total_max-total_idle)*workload))))/100);


document.form1.sys_tot.value=Math.round(tot);
document.form1.idle_tot.value=Math.round(total_idle);
document.form1.btu_power.value=Math.round((((document.form1.sys_tot.value*3600)/1055.056)*100)/100);
document.form1.btu_power2.value=Math.round((((document.form1.idle_tot.value*3600)/1055.056)*100)/100);

}


function resetStorageOptions() {
	var selbox1 = document.form1.j4400_1;
	var selbox2 = document.form1.j4400_2;
	var selbox3 = document.form1.j4400_3;
	var selbox4 = document.form1.j4400_4;
	var selbox5 = document.form1.j4400_5;
	var selbox6 = document.form1.j4400_6;
	var selbox7 = document.form1.j4400_7;

	selbox1.options.length = 0;
	selbox2.options.length = 0;
	selbox3.options.length = 0;
	selbox4.options.length = 0;
	selbox5.options.length = 0;
	selbox6.options.length = 0;
	selbox7.options.length = 0;

	selbox1.options[selbox1.options.length] = new Option('None','0');
	selbox2.options[selbox2.options.length] = new Option('None','0');
	selbox3.options[selbox3.options.length] = new Option('None','0');
	selbox4.options[selbox4.options.length] = new Option('None','0');
	selbox5.options[selbox5.options.length] = new Option('None','0');
	selbox6.options[selbox6.options.length] = new Option('None','0');
	selbox7.options[selbox7.options.length] = new Option('None','0');

	selbox1.options[selbox1.options.length] = new Option('1','1');
	selbox1.options[selbox1.options.length] = new Option('2','2');
	selbox1.options[selbox1.options.length] = new Option('3','3');
	selbox1.options[selbox1.options.length] = new Option('4','4');

	selbox2.options[selbox2.options.length] = new Option('1','1');
	selbox2.options[selbox2.options.length] = new Option('2','2');
	selbox2.options[selbox2.options.length] = new Option('3','3');

	selbox3.options[selbox3.options.length] = new Option('1','1');
	selbox3.options[selbox3.options.length] = new Option('2','2');
	selbox3.options[selbox3.options.length] = new Option('3','3');

	selbox4.options[selbox4.options.length] = new Option('1','1');
	selbox4.options[selbox4.options.length] = new Option('2','2');
	selbox4.options[selbox4.options.length] = new Option('3','3');
	selbox4.options[selbox4.options.length] = new Option('4','4');

	selbox5.options[selbox5.options.length] = new Option('1','1');
	selbox5.options[selbox5.options.length] = new Option('2','2');
	selbox5.options[selbox5.options.length] = new Option('3','3');

	selbox6.options[selbox6.options.length] = new Option('1','1');
	selbox6.options[selbox6.options.length] = new Option('2','2');
	selbox6.options[selbox6.options.length] = new Option('3','3');

	selbox7.options[selbox7.options.length] = new Option('1','1');
	selbox7.options[selbox7.options.length] = new Option('2','2');
	selbox7.options[selbox7.options.length] = new Option('3','3');

	//Others
	var selbox = document.form1.nic;
	selbox.options.length = 0;
	selbox.options[selbox.options.length] = new Option('None','0');
	selbox.options[selbox.options.length] = new Option('1 x Dual Port 10GbE','21');
	selbox.options[selbox.options.length] = new Option('1 x Dual Port GbE','15');
	
    var selbox2 = document.form1.ethernet;
	
	selbox2.options.length = 0;
	
	selbox2.options[selbox2.options.length] = new Option('None','0');
	selbox2.options[selbox2.options.length] = new Option('1','1');

	var selbox = document.form1.backup;
	selbox.options.length = 0;
	selbox.options[selbox.options.length] = new Option('None','0');
	selbox.options[selbox.options.length] = new Option('1 x SCSI','11.5');
	selbox.options[selbox.options.length] = new Option('1 x Fibre-Channel single/dual port','9');
	selbox.options[selbox.options.length] = new Option('1 x Fibre-Channel quad port','18');
	
	var selbox = document.form1.ssd;
	selbox.options.length = 0;
	selbox.options[selbox.options.length] = new Option('None','0');
	selbox.options[selbox.options.length] = new Option('1 SSD','1');
	selbox.options[selbox.options.length] = new Option('2 SSDs','2');
	selbox.options[selbox.options.length] = new Option('3 SSDs','3');
	selbox.options[selbox.options.length] = new Option('4 SSDs','4');
	selbox.options[selbox.options.length] = new Option('5 SSDs','5');
	selbox.options[selbox.options.length] = new Option('6 SSDs','6');
}

function setStorageOptions() {

	var selbox1 = document.form1.j4400_1;
	var selbox2 = document.form1.j4400_2;
	var selbox3 = document.form1.j4400_3;
	var selbox4 = document.form1.j4400_4;
	var selbox5 = document.form1.j4400_5;
	var selbox6 = document.form1.j4400_6;
	var selbox7 = document.form1.j4400_7;

	var selbox1Val = 1*selbox1.value;
	var selbox2Val = 1*selbox2.value;
	var selbox3Val = 1*selbox3.value;
	var selbox4Val = 1*selbox4.value;
	var selbox5Val = 1*selbox5.value;
	var selbox6Val = 1*selbox6.value;
	var selbox7Val = 1*selbox7.value;
	 
	selbox1.options.length = 0;
	selbox2.options.length = 0;
	selbox3.options.length = 0;
	selbox4.options.length = 0;
	selbox5.options.length = 0;
	selbox6.options.length = 0;
	selbox7.options.length = 0;

	selbox1.options[selbox1.options.length] = new Option('None','0');
	selbox2.options[selbox2.options.length] = new Option('None','0');
	selbox3.options[selbox3.options.length] = new Option('None','0');
	selbox4.options[selbox4.options.length] = new Option('None','0');
	selbox5.options[selbox5.options.length] = new Option('None','0');
	selbox6.options[selbox6.options.length] = new Option('None','0');
	selbox7.options[selbox7.options.length] = new Option('None','0');

	var totArraySelectedSum = selbox1Val+selbox2Val+selbox3Val+selbox4Val+selbox5Val+selbox6Val+selbox7Val;
	var totArrayWithSSDSelectedSum = selbox2Val+selbox3Val+selbox5Val+selbox6Val+selbox7Val;
	var serverQty = (1*document.form1.serverQty.value);

	var maxArrayNoSSD = 4;
	var maxArrayWithSSD = 3;

	if (serverQty == 2)  {
		//maxArrayNoSSD = 24;
		maxArrayWithSSD = 3;
	}

	var maxArrayNoSSDAvailable = 1*((1*maxArrayNoSSD) - (1*totArraySelectedSum));
	var maxArrayWithSSDAvailable = 1*((1*maxArrayWithSSD) - (1*totArrayWithSSDSelectedSum));
	
	if (maxArrayWithSSDAvailable > maxArrayNoSSDAvailable) {
		maxArrayWithSSDAvailable = maxArrayNoSSDAvailable;
	}

    var i = 0;
	//12TB Disk and no SSDs Array
	if (selbox1Val > 0) {
		for (i = 0; i < selbox1Val; i++)  {
			var tmp = ((1*i)+1)
			selbox1.options[selbox1.options.length] = new Option(''+tmp,''+tmp);
		}
	}
	for (i = selbox1Val; i < maxArrayNoSSDAvailable; i++)  {
		var tmp = ((1*i)+1)
			
		selbox1.options[selbox1.options.length] = new Option(''+tmp,''+tmp);
	}
	if (selbox1Val > 0) {
		for (i = 0; i < selbox1.options.length; i++)	{
			if (selbox1.options[i].value == selbox1Val)  {
				selbox1.options[i].selected = true;
				break;
			}
		}
	}

	//11TB Disk and 1 SSD Array
	if (selbox2Val > 0) {
		for (i = 0; i < selbox2Val; i++)  {
			var tmp = ((1*i)+1)
			selbox2.options[selbox2.options.length] = new Option(''+tmp,''+tmp);
		}
	}
	for (i = selbox2Val; i < maxArrayWithSSDAvailable; i++)  {
		var tmp = ((1*i)+1)
		selbox2.options[selbox2.options.length] = new Option(''+tmp,''+tmp);
	}
	if (selbox2Val > 0) {
		for (i = 0; i < selbox2.options.length; i++)	{
			if (selbox2.options[i].value == selbox2Val)  {
				selbox2.options[i].selected = true;
			}
		}
	}

	//10TB Disk and 2 SSDs Array
	if (selbox3Val > 0) {
		for (i = 0; i < selbox3Val; i++)  {
			var tmp = ((1*i)+1)
			selbox3.options[selbox3.options.length] = new Option(''+tmp,''+tmp);
		}
	}
	for (i = selbox3Val; i < maxArrayWithSSDAvailable; i++)  {
		var tmp = ((1*i)+1)
		selbox3.options[selbox3.options.length] = new Option(''+tmp,''+tmp);
	}
	if (selbox3Val > 0) {
		for (i = 0; i < selbox3.options.length; i++)	{
			if (selbox3.options[i].value == selbox3Val)  {
				selbox3.options[i].selected = true;
			}
		}
	}

	//24TB Disk and no SSDs Array
	if (selbox4Val > 0) {
		for (i = 0; i < selbox4Val; i++)  {
			var tmp = ((1*i)+1)
			selbox4.options[selbox4.options.length] = new Option(''+tmp,''+tmp);
		}
	}
	for (i = selbox4Val; i < maxArrayNoSSDAvailable; i++)  {
		var tmp = ((1*i)+1)
		selbox4.options[selbox4.options.length] = new Option(''+tmp,''+tmp);
	}
	if (selbox4Val > 0) {
		for (i = 0; i < selbox4.options.length; i++)	{
			if (selbox4.options[i].value == selbox4Val)  {
				selbox4.options[i].selected = true;
				break;
			}
		}
	}

	//22TB Disk and 1 SSD Array
	if (selbox5Val > 0) {
		for (i = 0; i < selbox5Val; i++)  {
			var tmp = ((1*i)+1)
			selbox5.options[selbox5.options.length] = new Option(''+tmp,''+tmp);
		}
	}
	for (i = selbox5Val; i < maxArrayWithSSDAvailable; i++)  {
		var tmp = ((1*i)+1)
		selbox5.options[selbox5.options.length] = new Option(''+tmp,''+tmp);
	}
	if (selbox5Val > 0) {
		for (i = 0; i < selbox5.options.length; i++)	{
			if (selbox5.options[i].value == selbox5Val)  {
				selbox5.options[i].selected = true;
			}
		}
	}

	//22TB Disk and 2 SSDs Array
	if (selbox6Val > 0) {
		for (i = 0; i < selbox6Val; i++)  {
			var tmp = ((1*i)+1)
			selbox6.options[selbox6.options.length] = new Option(''+tmp,''+tmp);
		}
	}
	for (i = selbox6Val; i < maxArrayWithSSDAvailable; i++)  {
		var tmp = ((1*i)+1)
		selbox6.options[selbox6.options.length] = new Option(''+tmp,''+tmp);
	}
	if (selbox6Val > 0) {
		for (i = 0; i < selbox6.options.length; i++)	{
			if (selbox6.options[i].value == selbox6Val)  {
				selbox6.options[i].selected = true;
			}
		}
	}

	//20TB Disk and 4 SSDs Array
	if (selbox7Val > 0) {
		for (i = 0; i < selbox7Val; i++)  {
			var tmp = ((1*i)+1)
			selbox7.options[selbox7.options.length] = new Option(''+tmp,''+tmp);
		}
	}
	for (i = selbox7Val; i < maxArrayWithSSDAvailable; i++)  {
		var tmp = ((1*i)+1)
		selbox7.options[selbox7.options.length] = new Option(''+tmp,''+tmp);
	}
	if (selbox7Val > 0) {
		for (i = 0; i < selbox7.options.length; i++)	{
			if (selbox7.options[i].value == selbox7Val)  {
				selbox7.options[i].selected = true;
			}
		}
	}

}

function setClusterOptions()  {

    setStorageOptions();	
	setSSDOptions();
	setTapeOptions();	
	setEthernetOptions();
	setNICOptions();
}

function setNICOptions()  {

	var serverQty = 1*document.form1.serverQty.value;

    var selbox = document.form1.nic;
	selbox.options.length = 0;
	selbox.options[selbox.options.length] = new Option('None','0');
	selbox.options[selbox.options.length] = new Option('1 x Dual-port 10GbE','21');
	selbox.options[selbox.options.length] = new Option('1 x Dual-port GbE','15');
	
	if (serverQty == 2)	{

		selbox.options[selbox.options.length] = new Option('2 x Dual Port 10GbEs','42');
	    selbox.options[selbox.options.length] = new Option('2 x Dual Port GbEs','30');
	}
}

function setEthernetOptions()  {

	var serverQty = 1*document.form1.serverQty.value;

    var selbox2 = document.form1.ethernet;
	
	selbox2.options.length = 0;
	
	selbox2.options[selbox2.options.length] = new Option('None','0');
	selbox2.options[selbox2.options.length] = new Option('1','1');
	
	if (serverQty == 2)	{

		selbox2.options[selbox2.options.length] = new Option('2','2');
		selbox2.options[2].selected = true;
	}
}

function setTapeOptions()  {

	var serverQty = 1*document.form1.serverQty.value;

    var selbox = document.form1.backup;
	selbox.options.length = 0;
	selbox.options[selbox.options.length] = new Option('None','0');
	selbox.options[selbox.options.length] = new Option('1 x SCSI','11.5');
	selbox.options[selbox.options.length] = new Option('1 x Fibre-Channel single/dual port','9');
	selbox.options[selbox.options.length] = new Option('1 x Fibre-Channel quad port','18');
	
	if (serverQty == 2)	{

		selbox.options[selbox.options.length] = new Option('2 x SCSI','23');
		selbox.options[selbox.options.length] = new Option('2 x Fibre-Channel single/dual port','18');
		selbox.options[selbox.options.length] = new Option('2 x Fibre-Channel quad port','36');
	}
}

function setSSDOptions()  {

	var serverQty = 1*document.form1.serverQty.value;

    var selbox = document.form1.ssd;
	selbox.options.length = 0;
	selbox.options[selbox.options.length] = new Option('None','0');
	selbox.options[selbox.options.length] = new Option('1 SSD','1');
	selbox.options[selbox.options.length] = new Option('2 SSDs','2');
	selbox.options[selbox.options.length] = new Option('3 SSDs','3');
	selbox.options[selbox.options.length] = new Option('4 SSDs','4');
	selbox.options[selbox.options.length] = new Option('5 SSDs','5');
	selbox.options[selbox.options.length] = new Option('6 SSDs','6');

	if (serverQty == 2)	{

		selbox.options[selbox.options.length] = new Option('7 SSDs','7');
		selbox.options[selbox.options.length] = new Option('8 SSDs','8');
		selbox.options[selbox.options.length] = new Option('9 SSDs','9');
		selbox.options[selbox.options.length] = new Option('10 SSDs','10');
		selbox.options[selbox.options.length] = new Option('11 SSDs','11');
		selbox.options[selbox.options.length] = new Option('12 SSDs','12');
	}
}

function checkForm () { 

	//Initialise variables
	var errorMsg = "";


	//Check for DIMM quantity
	if ((document.form1.j4400_1.value == "0")&&
		(document.form1.j4400_2.value == "0")&&
		(document.form1.j4400_3.value == "0")&&
		(document.form1.j4400_4.value == "0")&&
		(document.form1.j4400_5.value == "0")&&
		(document.form1.j4400_6.value == "0")&&
		(document.form1.j4400_7.value == "0")){
		errorMsg += "\n\Storage \t\t- Select atleast one Storage option.";	
	}
	
	//If there is aproblem with the form then display an error
	if (errorMsg != ""){
		msg = "______________________________________________________________\n\n";
		msg += "Your request has not been processed because there are problem(s) with the form.\n";
		msg += "Please correct the problem(s) and re-submit the form.\n";
		msg += "______________________________________________________________\n\n";
		msg += "The following field(s) need to be corrected: -\n";
		
		errorMsg += alert(msg + errorMsg + "\n\n");
		return false;
	}
	
	calculate();
}

