var builderAjaxPath = '/stavba/ajax/';
var configAjaxPath = '/konfigurace/ajax/';
var builderXMLRequester = new XMLHttpRequest;
var configXMLRequester = new XMLHttpRequest;

function initBuilder() {
	//nalezeni spravneho odkazu stavby
	var tagList = document.getElementsByTagName('div');
	var builderLink = null;
	var found = false;
	var i = 0;
	var maxI = tagList.length;
	
	var id = window.product_id ? window.product_id : window.id_product;
	
	if (id == undefined)
		return;
	
	//kontrola, jestli je stabna zalozena
	var form = document.getElementById('buy_block');
	
	$.get(builderAjaxPath + 'isBuildOn.php', {productId: id}, writeBuilderButton, "text")	
	$.get(configAjaxPath + 'confInfo.php', {productId: id}, writeConfigButton, "text");
}

function writeBuilderButton(response) {
	//alert(builderXMLRequester.responseText == "NO_FILE");
	if (response == "NO_FILE") {
		$("#buildercontroll").text("Tuto součást nelze použít ve stavbě").attr("disabled", "disabled");
		return;
	}
	
	var submiter = $("#buildercontroll");
	
	if (response == "NO") {
		submiter.text("Začít stavět");
		submiter.click(function (event) {document.location.href = '/stavba/stavba.php'});
	} else {
		submiter.removeAttr("disabled");
		submiter.text("Přidat do stavby");
		submiter.click(sendMountRequest);
		
		//vygenerovani vyberoveho pole
		var selecter = $("#builderparter");
		selecter.html("");
		
		var options = response.split("\n");
		
		for (var i = 1; i != options.length; i++) {
			var option = $('<option>');
			
			option.val(options[i]).text(options[i])
				.appendTo(selecter);
		}
		
		selecter.removeAttr("disabled");
	}
	
	var hidden = $("#builderId");
	hidden.val(response);
}

function writeConfigButton(response) {
	response = Number(response);
	
	if (response == 0)
		return;
	
	var builderForm = $("#configform");
	
	var submiter = builderForm.find("button");
	
	var caption;
	var action;

	//vyhodnoceni mapisu na tlacitku a adresy formulare
	switch (response) {
		case 1:
			caption = 'Spustit konfiguraci';
			action = '/konfigurace/start.php';
			
			break;
		
		case 2:
			caption = 'Změnit konfiguraci';
			action = "/konfigurace/start.php";
			
			builderForm.submit(function (e) {return confirm('Tímto krokem se stará konfigurace zahodí.\nSkutečně chcete pokračovat?');})
			
			break;
		
		case 3:
			caption = "Zaměnit díl v konfiguraci";
			action = "/konfigurace/appendPart.php";

			break
	}

	submiter.removeAttr("disabled").text(caption);
	builderForm.attr('action', action);
	
	var hidden = builderForm.find("#productId");
	
	hidden.val(id_product);
}

function sendMountRequest(event) {
	var form = document.getElementById('buy_block');
	
	$.get(builderAjaxPath + "mountPart.php", {productId : form.id_product.value, slot_name : $("#builderparter").val()}, solveMountResponse, "text");
}

function solveMountResponse(response) {
	if (response == "OK") {
		alert("Díl byl přidán do stavby");
		window.location.href = '/stavba/stavba.php';
		return;
	}
	
	if (response == "WARRNING_USED") {
		if (!confirm("Místo pro tento díl je už obsazeno. Chcete díl nahradit?"))
			return;
		
		var form = document.getElementById('buy_block');
		
		$.get(builderAjaxPath + "mountPart.php", {productId : form.id_product.value, slot_name : $("#builderparter").val(), forceMount : 1}, solveMountResponse, "text");
		
		return;
	}
	
	if (response == "ERROR_BIKE_TYPE") {
		alert("Tento díl není možné použít na vybraný typ stavěného kola.");
		
		return;
	}
}

$(function () {
	initBuilder();
});

