var system_name = ["przesuwne","rozwierane","składane","przejściowe"];
var frame_name = ["Idea","Heros","Twins","Tower","Elite","Prestige","Lexus","Avanti"];
var color_name = ['srebro','jasny brąz','złoto','koniak','srebro poler','jasny brąz poler','złoto poler','koniak poler'];
var link_name = ["brak","H 10","H 30"];
var track_name = ["tor pojedynczy","tor podwójny"];

var kitchen_frame_name = ["A-1","A-2","A-3","A-4"];
var kitchen_color_name = ["aluminium","inox","nikiel/szlif"];

var system_selected = 0;
var frame_selected = 0;
var color_selected = 0;
var foil_selected = 0;
var link_selected = 0;
var track_selected = 0;
var kitchen_frame_selected = 0;
var kitchen_color_selected = 0;


// Frame Dependency (depends on System)
var frame_dependency = new Array();
frame_dependency[0] = [0,1,2];
frame_dependency[1] = [0,1,2];
frame_dependency[2] = [0,3];
frame_dependency[3] = [0,3];
frame_dependency[4] = [0,3];
frame_dependency[5] = [0,1,2];
frame_dependency[6] = [0,1,2];
frame_dependency[7] = [0,1,2];

// Color Dependency (depends on Frame)
var color_dependency = new Array();
color_dependency[0] = [0,1,2,3,4,5,6,7];
color_dependency[1] = [0,1,2,3,4,5,6,7];
color_dependency[2] = [0,1,2,3,4,5];
color_dependency[3] = [4,5];
color_dependency[4] = [4,5];
color_dependency[5] = [4,5];
color_dependency[6] = [4,5];
color_dependency[7] = [4,5];

// Foil Dependency (depends on Frame)
var foil_dependency = [0,3,6];

// Width Limitations (by System)

// Kitchen Color Dependency (depends on Kitchen Frame)
var kitchen_color_dependency = new Array();
kitchen_color_dependency[0] = [0,1,2,3];
kitchen_color_dependency[1] = [0,1,2,3];
kitchen_color_dependency[2] = [0];

function validate_form(){
	system_selected = $("#system select").val();
	frame_selected = $("#frame select").val();
	color_selected = $("#color select").val();
	foil_selected = $("#foil select").val();
	link_selected = $("#link select").val();
	track_selected = $("#track select").val();
    update_system();
    update_frame();
    update_color();
    update_foil();
    update_link();
    update_track();
}

function validate_kitchen_form(){
	kitchen_frame_selected = $("#kitchen_frame select").val();
	kitchen_color_selected = $("#kitchen_color select").val();

	update_kitchen_frame();
	update_kitchen_color();
}

function create_warning(msg){
	var warning = $("<img src=\"images/warning.png\" title=\"" + msg + "\" />");
	return warning;
}

function update_system(){
	var box = $("#system select");
	box.html("");
	for(var i=0;i<system_name.length;i++){
		var tag = $("<option>" + system_name[i] + "</option>");
		tag.attr("value",i);
		if(system_selected == i){
			tag.attr("selected","selected");
		}
		box.append(tag);
	}
}

function update_kitchen_frame(){
	var box = $("#kitchen_frame select");
	box.html("");
	for(var i=0;i<kitchen_frame_name.length;i++){
		var tag = $("<option>" + kitchen_frame_name[i] + "</option>");
		tag.attr("value",i);
		if(kitchen_frame_selected == i){
			tag.attr("selected","selected");
		}
		box.append(tag);
	}
}

function update_frame(){
    var selection_found = false;
    var box = $("#frame select");
    box.html("");
    for(var i=0;i<frame_dependency.length;i++){
		for(var j=0;j<frame_dependency[i].length;j++){
			if(frame_dependency[i][j] == system_selected){
				var tag = $("<option>" + frame_name[i] + "</option>");
				tag.attr("value",i);
				if(frame_selected == i){
					tag.attr("selected","selected");
					selection_found = true;   
				}
				box.append(tag);
				break;
			}
		}
    }
    if(selection_found || frame_selected == null)
    	$("#frame .notif").html("");
    else
    	$("#frame .notif").append(create_warning("Ostrzeżenie o zmianie rodzaju ramy"));
}

function update_color(){
    var selection_found = false;
    var box = $("#color select");
    box.html("");
    for(var i=0;i<color_dependency.length;i++){
	for(var j=0;j<color_dependency[i].length;j++){
	    if(color_dependency[i][j] == frame_selected){
		var tag = $("<option>" + color_name[i] + "</option>");
		tag.attr("value",i);
		if(color_selected == i){
		    tag.attr("selected","selected");
		    selection_found = true;
		}
		box.append(tag);
		break;
	    }
	}
    }
}

function update_kitchen_color(){
    var selection_found = false;
    var box = $("#kitchen_color select");
    box.html("");
    for(var i=0;i<kitchen_color_dependency.length;i++){
	for(var j=0;j<kitchen_color_dependency[i].length;j++){
	    if(kitchen_color_dependency[i][j] == kitchen_frame_selected){
		var tag = $("<option>" + kitchen_color_name[i] + "</option>");
		tag.attr("value",i);
		if(kitchen_color_selected == i){
		    tag.attr("selected","selected");
		    selection_found = true;
		}
		box.append(tag);
		break;
	    }
	}
    }
}

function update_foil(){
    var box = $("#foil input");
    box.css("display","inline");
    for(var i=0;i<foil_dependency.length;i++){
		if(foil_dependency[i] == frame_selected)
			return;
    }
    box.css("display","none");
    $("#foil .notif").html("");
    return true;
}

function check_foil_value(){
	var box = $("#foil input");
	$("#foil .notif").html("");
	
	if(box.val().match(/^[0-9]*$/))
		return true;

	$("#foil .notif").append(create_warning("Podana wartość nie jest liczbą"));
	return false;
}

function check_doors_value(){
	var box = $("#doors input");
	$("#doors .notif").html("");
	if(box.val().match(/^[0-9]+$/))
		return true;
	$("#doors .notif").append(create_warning("Podana wartość nie jest liczbą"));
	return false;
}

function check_width_value(){
	var box = $("input#width");
	$("#dimensions .notif").html("");
	if(box.val().match(/^[0-9]+$/)){
		if(system_selected == 0){
			if(track_selected == 0){
				if(box.val() <= 3000)
					return true;
				else
					$("#dimensions .notif").append(create_warning("Maksymalna szerokość dla tego typu systemu wynosi 3000mm"));
			}
			if(track_selected == 1){
				if(box.val() <= 5350)
					return true;
				else
					$("#dimensions .notif").append(create_warning("Maksymalna szerokość dla tego typu systemu wynosi 5350mm"));
			}
		}
		if(system_selected == 1){
			if(box.val() <= 3000)
				return true;
			else
				$("#dimensions .notif").append(create_warning("Maksymalna szerokość dla tego typu systemu wynosi 3000mm"));
		}
		if(system_selected == 2 || system_selected == 3){
			if(box.val() <= 5350)
				return true;
			else
				$("#dimensions .notif").append(create_warning("Maksymalna szerokość dla tego typu systemu wynosi 5350mm"));
		}
	}
	else{	
		$("#dimensions .notif").append(create_warning("Podana wartość nie jest liczbą"));
	}
	return false;
}

function check_height_value(){
	var box = $("input#height");
	$("#dimensions .notif").html("");
	if(box.val().match(/^[0-9]+$/)){
		if(frame_selected == 6 || frame_selected == 7){
			if(box.val() <= 2720)
				return true;
			else
				$("#dimensions .notif").append(create_warning("Maksymalna wysokość dla tego typu ramy wynosi 2720mm"));
		}
		else{
			if(box.val() <= 3000)
				return true;
			else
				$("#dimensions .notif").append(create_warning("Maksymalna wysokość dla tego typu ramy wynosi 3000mm"));
		}
	}
	else{
		$("#dimensions .notif").append(create_warning("Podana wartość nie jest liczbą"));
	}
	return false;
}

function check_filling_value(){
	var box = $("#kitchen_filling input");
	$("#kitchen_filling .notif").html("");
	if(box.val().match(/^[^\(\)_&\^%\$#@!\+\{\}\[\];:'",\?\*<>\.]+$/))
		return true;
	$("#kitchen_filling .notif").append(create_warning("Podana wartość zawiera niedozwolone znaki"));
	return false;
}

function check_filling(){
	var fi = $("#filling input");
	$("#filling .notif").html("");
	update_buttons();
	for(var i=0;i<fi.size();i++){
		if(i%2 == 1 && !fi.eq(i).val().match(/^[0-9]+$/)){
			$("#filling .notif").append(create_warning("Wartość sztuk nie jest liczbą"));
			return false;
		}
	}
	return true;
}

function check_dimensions(){
	var di = $("#kitchen_frame_dimensions input");
	$("#kitchen_frame_dimensions .notif").html("");
	update_dimensions_buttons();
	for(var i=0;i<di.size();i++){
		if(!di.eq(i).val().match(/^[0-9]+$/)){
			$("#kitchen_frame_dimensions .notif").append(create_warning("Jedna z wartości nie jest liczbą"));
			return false;
		}
	}
	return true;
}

function check_deadline_value(){
	var box = $("input#deadline");
	$("#deadline_tr .notif").html("");
	if(box.val().match(/^201[0-9]-[0-1][0-9]-[0-3][0-9]$/))
		return true;
	$("#deadline_tr .notif").append(create_warning("Format daty niezgodny z rrrr-mm-dd"));
	return false;
}

function update_link(){
    var box = $("#link select");
    box.html("");
    for(var i=0;i<link_name.length;i++){
    	var tag = $("<option>" + link_name[i] + "</option>");
    	tag.attr("value",i);
    	if(link_selected == i){
			tag.attr("selected","selected");
		}
		box.append(tag);	
    }
}

function update_track(){
	var box = $("#track select");
	box.html("");
	for(var i=0;i<track_name.length;i++){
    	var tag = $("<option>" + track_name[i] + "</option>");
    	tag.attr("value",i);
    	if(track_selected == i){
			tag.attr("selected","selected");
		}
		box.append(tag);	
    }
	
	if(system_selected == 0)
		$("#newform tr#track").css("display","table-row");
	else
		$("#newform tr#track").css("display","none");
}


function load_form_data(){
	system_selected = $('#vars input[name="system"]').val();
	frame_selected = $('#vars input[name="frame"]').val();
	color_selected = $('#vars input[name="color"]').val();
	foil_selected = $('#vars input[name="foil"]').val();
	link_selected = $('#vars input[name="link"]').val();
	track_selected = $('#vars input[name="track"]').val();
	
	update_system();
    update_frame();
    update_color();
    update_foil();
    update_link();
    update_track();
    
    $("#foil input:text").val($('#vars input[name="foil"]').val());
    $("#dimensions input#width:text").val($('#vars input[name="width"]').val());
    $("#dimensions input#height:text").val($('#vars input[name="height"]').val());
    $("#doors input:text").val($('#vars input[name="doors"]').val());
    $("input#deadline:text").val($('#vars input[name="deadline"]').val());
    $("textarea#adnotations").val($('#vars textarea[name="adnotations"]').val());
    
    load_filling();
    load_images();
    
    var price = $('#vars input[name="price"]').val();	
	if(price != ""){
		$("#newform tr#price").css("display","table-row");
		$("#price input").val(price);
	}
	else{
		$("#newform tr#price").css("display","none");
	}
    
    var answer = $('#vars textarea[name="answer"]').val();	
	if(answer != ""){
		$("#newform tr#answer").css("display","table-row");
		$("#answer textarea").val(answer);
	}
	else{
		$("#newform tr#answer").css("display","none");
	}
    
    if($('#vars input[name="expired"]').val() == 'yes'){
		$("#newform input").attr("disabled","disabled");
		$("#newform textarea").attr("disabled","disabled");
		$("#newform select").attr("disabled","disabled");
		$("#orderbutton").attr("onclick","").css("display","none");
		$("#images_button").attr("onclick","").css("display","none");
		$("#filling .notif").html("");
	}
}

function load_kitchen_form_data(){
	kitchen_frame_selected = $('#vars input[name="frame"]').val();
	kitchen_color_selected = $('#vars input[name="color"]').val();
	
	update_kitchen_frame();
	update_kitchen_color();
	
	$('#kitchen_filling input').val($('#vars input[name="filling"]').val());
	$("input#deadline:text").val($('#vars input[name="deadline"]').val());
    $("textarea#adnotations").val($('#vars textarea[name="adnotations"]').val());
    
    load_dimensions();
	load_images();
    var price = $('#vars input[name="price"]').val();	
	if(price != ""){
		$("#newform tr#price").css("display","table-row");
		$("#price input").val(price);
	}
	else{
		$("#newform tr#price").css("display","none");
	}
	
	var answer = $('#vars textarea[name="answer"]').val();	
	if(answer != ""){
		$("#newform tr#answer").css("display","table-row");
		$("#answer textarea").val(answer);
	}
	else{
		$("#newform tr#answer").css("display","none");
	}
	
	if($('#vars input[name="expired"]').val() == 'yes'){
		$("#newform input").attr("disabled","disabled");
		$("#newform textarea").attr("disabled","disabled");
		$("#newform select").attr("disabled","disabled");
		$("#orderbutton").attr("onclick","").css("display","none");
		$("#images_button").attr("onclick","").css("display","none");
		$("#kitchen_frame_dimensions .notif").html("");
	}
}

function load_new_form(){
	system_selected = 0;
	frame_selected = 0;
	color_selected = 0;
	foil_selected = 0;
	link_selected = 0;
	track_selected = 0;
	
	update_system();
    update_frame();
    update_color();
    update_foil();
    update_link();
    update_track();
	
	$("#newform tr#price").css("display","none");
	$("#newform tr#answer").css("display","none");
}

function load_new_kitchen_form(){
	kitchen_frame_selected = 0;
	kitchen_color_selected = 0;
	
	update_kitchen_frame();
	update_kitchen_color();
	
	$("#newform tr#price").css("display","none");
	$("#newform tr#answer").css("display","none");
}

function load_filling(){
	var fillings = $('#vars input[name="filling"]').val();
	var parsed = fillings.split(/\|/g);
	
	var fill_container = $("#fillcontainer");
	fill_container.html("");
	for(var i=0;i<(parsed.length/2);i++){
		var new_filling = $("<div class=\"fillarea\"></div>");
		new_filling.html('<input type="text" class="dimensions" value="' + parsed[i*2] + '"> &nbsp; sztuk <input type="text" class="dimensions" value="' + parsed[i*2+1] + '">');
		fill_container.append(new_filling);
	}
	update_buttons();
}

function load_dimensions(){
	var dimensions = $('#vars input[name="dimensions"]').val();
	var parsed = dimensions.split(/\|/g);
	
	var dimensions_container = $("#dimensions_container");
	dimensions_container.html("");
	for(var i=0;i<(parsed.length/5);i++){
		var new_dimensions = $("<div class=\"dimensions_area\"></div>");
		new_dimensions.html("");
		new_dimensions.append('<div class="dimensions_helpbox1"><span class="dimensionsH">Wys.</span><input type="text" class="vshort" value="' + parsed[i*5] + '"><span class="dimensionsHinge">Zawias</span><input type="text" class="vshort" value="' + parsed[i*5+1] + '"><br><span class="dimensionsW">Sze.</span><input type="text" class="vshort" value="' + parsed[i*5+2] + '"><span class="dimensionsHinge">Zawias</span><input type="text" class="vshort" value="' + parsed[i*5+3] + '"></div>');
		new_dimensions.append('<div class="dimensions_helpbox2">Ilość ramek<br><input type="text" class="vshort" value="' + parsed[i*5+4] + '"></div>');
		dimensions_container.append(new_dimensions);
	}
	update_dimensions_buttons();
}

function load_images(){
	var images = $('#vars input[name="images"]').val();
	var images_container = $("#images #images_container");
	images_container.html("");
	if(images.length > 0){
		var parsed = images.split(/\|/g);
		for(var i=0;i<(parsed.length/2);i++){
			images_container.append('<div><input type="checkbox" checked="checked" /><a href="upload/' + parsed[i*2] + '" target="_blank">' + parsed[i*2+1] + '</a></div>');
		}
	}
}

function send_form(){
	
	var valid = true;
	valid &= check_foil_value();
	valid &= check_width_value();
	valid &= check_height_value();
	valid &= check_doors_value();
	valid &= check_deadline_value();
	valid &= check_filling();
	if(!valid){
		return false;	
	}
	
	var form = new Array();
	form[0] = $('#vars input[name="oid"]').val();
	form[1] = $('#vars input[name="cid"]').val();
	form[2] = $("#system select").val();
	form[3] = $("#frame select").val();
	form[4] = $("#color select").val();
	form[5] = $("#foil input").val();
	form[6] = $("#link select").val();
	form[7] = $("input#width").val();
	form[8] = $("input#height").val();
	form[9] = $("#doors input").val();
	form[14] = $("#track select").val();
	var fi = $("#filling input");
	var fcoded = "";
	for(var i=0;i<fi.size();i++){
		fcoded += fi.eq(i).val() + "|";
	}
	fcoded = fcoded.substr(0,fcoded.length-1);
	form[10] = fcoded;
	form[11] = $("input#deadline").val();
	form[12] = $("textarea#adnotations").val();
	var im = $("#images #images_container div");
	var icoded = "";
	for(var i=0;i<im.size();i++){
		var a = im.eq(i).children("a");
		if(im.eq(i).children("input:checked").length > 0)
			icoded += (a.attr("href").split(/\//g))[1] + '|' + a.html() + "|";
	}
	icoded = icoded.substr(0,icoded.length-1);
	form[13] = icoded;
	saveRequest($('#vars input[name="formtype"]').val(),form[0],form[1],form[2],form[3],form[4],form[5],form[6],form[14],form[7],form[8],form[9],form[10],form[11],form[12],form[13]);
	document.getElementById('orderbutton').className = "order_inprogress";
}

function send_kitchen_form(){
	
	var valid = true;
	valid &= check_filling_value();
	valid &= check_deadline_value();
	valid &= check_dimensions();
	if(!valid){
		return false;	
	}
	
	var form = new Array();
	form[0] = $('#vars input[name="oid"]').val();
	form[1] = $('#vars input[name="cid"]').val();
	form[2] = $("#kitchen_frame select").val();
	form[3] = $("#kitchen_color select").val();
	form[4] = $("#kitchen_filling input").val();
	
	var fi = $("#dimensions_container input:text");
	var fcoded = "";
	for(var i=0;i<fi.size();i++){
		fcoded += fi.eq(i).val() + "|";
	}
	fcoded = fcoded.substr(0,fcoded.length-1);
	
	form[5] = fcoded;
	
	form[6] = $("input#deadline").val();
	form[7] = $("textarea#adnotations").val();
	var im = $("#images #images_container div");
	var icoded = "";
	for(var i=0;i<im.size();i++){
		var a = im.eq(i).children("a");
		if(im.eq(i).children("input:checked").length > 0)
			icoded += (a.attr("href").split(/\//g))[1] + '|' + a.html() + "|";
	}
	icoded = icoded.substr(0,icoded.length-1);
	form[8] = icoded;
	
	saveRequest2($('#vars input[name="formtype"]').val(),form[0],form[1],form[2],form[3],form[4],form[5],form[6],form[7],form[8]);
	document.getElementById('orderbutton').className = "order_inprogress";
}

