// JavaScript Document

function changeContents(id, contents)
{
	if (document.layers)
	{
		var oLayer;
    	oLayer = document.layers[id].document;
		oLayer.open();
		oLayer.write(contents);
		oLayer.close();
	}
	else if (parseInt(navigator.appVersion)>=5&&navigator.appName=="Netscape")
	{
		var obj = document.getElementById(id);
		obj.innerHTML = contents;
	}
	else if (document.all) document.all[id].innerHTML = contents 
}

function getSelected(elmt)
{
	var opts = elmt.getElementsByTagName("option");

	for(j=0;j<opts.length;j++)
	{
		if(opts[j].selected)
		{
			return opts[j];
		}
	}
}

function switchSelected(elmt, value )
{
	var opts = elmt.getElementsByTagName("option");

	for(j=0;j<opts.length;j++)
	{
		if(opts[j].value == value)
		{
			elmt.options[j].selected=true;
		}
	}
}
var currentcpu = 0;
var currentram = 0;

function updateForm(updateopts)
{
	var price;
	var total = 0;
	var selects=document.getElementsByTagName("select");

	// new code

	var proc = document.forms['builder'].cpu;
	var s = proc.options[proc.selectedIndex].value;
	s = s.split(" - ");
	var type = s[1];

	var ram;
	var cpu;

	if(updateopts == 1)
	{
		if(type == "socket939")
		{
			cpu = socket939;
			ram = ddr;
		}
		else
		{
			ram = ddr2;
			// if switching to AM2
			if(type == "socketAM2")
			{
				cpu = socketAM2;
			}
			// else we have LGA 775
			else
				//and if current cpu not already lga775 switch to it
				cpu = lga775;
		}

		// change options to currentcpu, and ram
		if(cpu != currentcpu) { currentcpu = cpu; switchOptions(document.forms['builder'].motherboard, cpu, true); }
		if(ram != currentram) { currentram = ram; switchOptions(document.forms['builder'].ram, ram, true); }
	}
	if(updateopts == 2)
	{
		var caseimg = document.getElementById("caseid");
		var proc = document.forms['builder'].cases;
		var s = proc.options[proc.selectedIndex].text;
		s = s.split(" ");
		var color = s[2];
		var imgsrc = color.toLowerCase();
		if(s.length > 5)
		{
			imgsrc += " window";
		}
		imgsrc += ".jpg";
		if(s.length > 3)
			caseimg.src = "images/" + imgsrc;
		
	}


	for(i=0;i<selects.length;i++)
	{
		var obj = getSelected(selects[i]);
		var b = obj.innerHTML;
		b = b.split(" - $");
		if(b.length > 1)
		{
			price = b[1];
			total += parseInt(price);
		}
	

  	}

	var inputs = document.getElementsByTagName("input");
	for(i=0;i<inputs.length;i++)
	{
		if(inputs[i].getAttribute("type") == "checkbox")
		{
			if(inputs[i].checked)
			{
				var b = inputs[i].getAttribute("value");
				b = document.getElementById(b);
				b = b.innerHTML;
				b = b.split(" - $");
				if(b.length > 1)
				{
					price = b[1];
					total += parseInt(price);
				}
			}
		}
  	}

	changeContents('total', "$" + total);
	/*var obj = document.getElementById("total");
	obj.value = total;*/
}
function openWindow(type, id)
{
	if(type == 1)
	{
		var obj = document.getElementById(id);
		var opt = getSelected(obj);
		var b = opt.value;
		var sp = b.split(" - ");
		if(sp.length > 1)
		{
			return window.open('info.php?id=' + sp[0] ,'window','width=550,height=600,scrollbars=yes');
		}
	}
	else
	{
		//designed so you can add different window types, not sure why I did it like this
		//should do something here, not sure what
	}
		
}

//new stuff
function switchOptions(name, arrayItem, necessary)
{
	var offset = 0;
	var first = name.options[0];
	name.options.length = 0;
	name.options[0] = first;
	if(!necessary)
	{
		offset = 2;
		name.options[1] = new Option("None - $0", "none");
	}
	for(i=2;i<arrayItem.length;i+=2)
	{
		name.options[(i+offset)/2] = new Option(arrayItem[i],arrayItem[i+1]);
	}
}
