var components = String("ram,hdd,cpu").split(",");
var activePage = 1;

function recalculatePrice() {
	var price = 0;
	if(b = getBarebone()) {
		price+= Number(b.price);
	}
	if(c = getComponent("cpu")) {
		price+= Number(c.price);
	}
	if(c = getComponent("ram")) {
		price+= Number(c.price);
	}
	if(c = getComponent("hdd")) {
		price+= Number(c.price);
	}
	qty = Number($("qty")?$("qty").value:1);
	price = Number(price) * qty;
	price = Number(price).toFixed(2);
	$("step2_price").innerHTML = price;
	$("step3_price").innerHTML = price;
	$("step4_price").innerHTML = "Всичко: "+price;
	getCurrent();
}

function getCurrent() {
	var html = "";
	if(c = getComponent("cpu")) {
		html+= "<b>Процесор:</b> <br>"+c.name+"<br><br>";
	}
	if(c = getComponent2("ram[]","ram")) {
		if(c.length) {
			html+= "<b>Оперативна памет:</b> <br>";
			for(i=0;i<c.length;i++) {
				html+= c[i].name+"<br>";
			}
			html+= "<br>";
		}
	}
	if(c = getComponent2("hdd[]","hdd")) {
		if(c.length) {
			html+= "<b>Твърд диск:</b><br>";
			for(i=0;i<c.length;i++) {
				html+= c[i].name+"<br>";
			}
			html+= "<br>";
		}
	}
	$("step2_config").innerHTML = html;
	if(b = getBarebone()) {
		$("step2_config").innerHTML+= "<b>Система:</b><br>"+b.description2;
	}
	$("step3_config").innerHTML = html;
	if(b = getBarebone()) {
		$("step3_config").innerHTML+= "<b>Система:</b><br>"+b.description2;
	}
	if(b = getBarebone()) {
		$("step4_config").innerHTML = "";
		if(b.image) {
			$("step4_config").innerHTML+= '<a href="'+b.image2+'"><img src="'+b.image+'" align="right" onload="prepZooms()" /></a>';
		}
		$("step4_config").innerHTML+= html;
		$("step4_config").innerHTML+= "<br>"+b.description;
	}
	setInfo();
}

function getComponent(c) {
	if(s = $("step2_"+c)) {
		id = s.options[s.selectedIndex].value;
		if(Number(id)) {
			if(id && eval(c+"["+id+"]"))
				return eval(c+"["+id+"]");
		}
	}
}

function getComponent2(c,d) {
	r = [];
	if(s = document.getElementsByName(c)) {
		for(i=0;i<s.length;i++) {
			id = s[i].options[s[i].selectedIndex].value;
			if(Number(id)) {
				if(id && eval(d+"["+id+"]")) {
					r[r.length] = eval(d+"["+id+"]");
				}
			}
		}
	}
	return r;
}

function barebone_change(e) {
	if(b = getBarebone()) {
		$("step1_barebone_info").innerHTML = "";
		if(b.image) {
			$("step1_barebone_info").innerHTML = '<a href="'+b.image2+'"><img src="'+b.image+'" align="right" onload="prepZooms()" /></a>';
		}
		$("step1_barebone_info").innerHTML+= b.description;
		setCPU(b.ac)
		setRAM(b.ac)
		setHDD(b.ac)
	} else $("step1_barebone_info").innerHTML = "";
	if($("step1_barebone").selectedIndex) {
		$("step1_barebone").removeClass("error");
	} else {
		$("step1_barebone").addClass("error");
		return;
	}
	removeAllChildNodes("step2_ram")
	removeAllChildNodes("step2_hdd")
	recalculatePrice();
	document.location.hash = "next";
}

function setCPU(ac) {
	var s = $("step2_cpu").options
	s.length = 0;
	s[s.length] = new Option("");
	for(i in ac) {
		if(typeof ac[i]=="number" && cpu[ac[i]]) {
			s[s.length] = new Option(cpu[ac[i]].name,ac[i]);
		}
	}
}

function setRAM(ac) {
	var s = $("step2_ram").options
	s.length = 0;
	s[s.length] = new Option("");
	for(i in ac) {
		if(typeof ac[i]=="number" && ram[ac[i]]) {
			s[s.length] = new Option(ram[ac[i]].name,ac[i]);
		}
	}
}

function setHDD(ac) {
	var s = $("step2_hdd").options
	s.length = 0;
	s[s.length] = new Option("");
	for(i in ac) {
		if(typeof ac[i]=="number" && hdd[ac[i]]) {
			s[s.length] = new Option(hdd[ac[i]].name,ac[i]);
		}
	}
}

function getBarebone() {
	id = ($("step1_barebone").options[$("step1_barebone").selectedIndex].value)
	if(barebones[id]) return barebones[id];
}


function setInfo() {
	var html = "";
	html+= "<b>Име:</b> <br>"+$("name").value+"<br>";
	html+= "<b>Адрес:</b> <br>"+$("address").value+"<br>";
	html+= "<b>E-mail:</b> <br>"+$("mail").value+"<br>";
	html+= "<b>Телефон:</b> <br>"+$("tel").value+"<br>";
	if($("notes").value) html+= "<b>Забележки:</b> <br>"+$("notes").value+"<br>";
	$("step4_info").innerHTML = html;
}

function step(step) {
	var titles = ["Избор на система","Избор на компоненти и допълнителни опции","Лични данни","Потрвърждение на заявката"]
	if(activePage==1) {
		// CHECK IF IS SELECTED A BAREBONE
		if($("step1_barebone").selectedIndex) {
			$("step1_barebone").removeClass("error");
		} else {
			$("step1_barebone").addClass("error");
			return;
		}
	}
	if(step==4) {
		// CHECK THE PERSONAL DATA FORM
		if(!$("name").value){		alert("Моля попълнете вашето име!");return;}
		if(!$("address").value){	alert("Моля попълнете адреса за доставка!");return;}
		if(!$("mail").value){		alert("Моля попълнете e-mail за контакти!");return;}
		if(!$("tel").value){		alert("Моля попълнете телефон за контакти!");return;}
	}
	var fadeFx2 = new Fx.Tween("page"+step,{duration:"short",onComplete:function(){}});
	var fadeFx1 = new Fx.Tween("page"+activePage,{duration:"short",
		onComplete:function(){
			this.subject.setStyle("display","none");
			$("page"+step).setStyle("display","block");
			replaceFonts();
			fadeFx2.start("opacity",0,1);
		}
	});
	fadeFx1.start("opacity",0);
	$("step"+activePage).removeClass("active");
	$("step"+step).removeClass("notActive");
	$("step"+step).addClass("active");
	$("title").innerHTML = titles[step-1];
	$("title").removeClass("sIFR-replaced");
	sIFR.replace(myriad, {
		selector: 'h3#title',transparent:true,selectable :false
	});
	activePage = step;
	getCurrent();
	document.location.hash = "next";
}
function initSteps() {
	$$(".pages .pa").each(function(d) {
		d.setOpacity("0");
		d.setStyle("display","none")
	})
	$$(".steps .step").each(function(d) {
		d.addEvent("click",function(){
			if(!d.hasClass("notActive") && !d.hasClass("active")){
				var s = String(d.id).replace("step","");
				step(s)
			}
		})
	})
}

function checkIt(evt) {
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        status = "This field accepts numbers only."
        return false
    }
    status = ""
    return true
}

function add(elementID,name,id) {
	if($(elementID).parentNode.childNodes.length==2) return;
	$(elementID).parentNode.appendChild($(elementID).cloneNode(true))
}

function removeAllChildNodes(id) {
	var element = $(id);
	var holder = element.parentNode;//the holder div
		
	while(holder.hasChildNodes()){
		holder.removeChild(holder.lastChild);
	}
	holder.appendChild(element)
} // removeAllChildNodes()