// funkcja obslugujaca zdarzenie wyboru elementu z listy
function searchForObjectOnChange()
{
	var selectName = $(this).attr('id').substr(5);

	switch(selectName)
	{
		case 'default':
			searchForObject(
				'default', 0,
				function(data)
				{
					var parent = $('#find_default').parent();
                    $('#find_default').remove();

                    var select = createFindObjectSelect('city',data);
                    parent.append(select);
                    select.before( $('<span id="find_city_span">Miasto</span>') );
				}
			);
		break;

		case 'city':
            if($(this).val() == 0 ) return false;

            searchForObject(
				'city', $(this).val(),
				function(data)
				{
                    $('#find_training_room').remove();
                    $('#find_training_room_span').remove();
                    $('#find_training_object').remove();
                    $('#find_training_object_span').remove();

                    var element = $('#find_city').parent();

                    var select = createFindObjectSelect('training_object',data);
                    element.append(select);
                    select.before( $('<span id="find_training_object_span">Obiekt</span>') );
				}
			);
		break;

        case 'training_object':
            if($(this).val() == 0 ) return false;
            searchForObject(
				'training_object', $(this).val(),
				function(data)
				{
                    $('#find_training_room').remove();
                    $('#find_training_room_span').remove();

                    var element = $('#find_training_object').parent();

                    var select = createFindObjectSelect('training_room',data);
                    element.append(select);
                    select.before( $('<span id="find_training_room_span">Sala</span>') );
				}
			);
        break;

        case 'training_room':
            if($(this).val() == 0 ) return false;
            $('#room_id').val($(this).val());

            var roomFullName = $('#room_full_name');
            if(roomFullName.length == 0)
            {
                roomFullName = $('<div id="room_full_name">');
                $(this).parent().after(roomFullName);
            }
            var fullName = '';
            fullName += getSelectValue($('#find_city'));
            fullName += ', '+getSelectValue($('#find_training_object'));
            fullName += ', '+getSelectValue($('#find_training_room'));
            roomFullName.html(fullName);

            $('#room_name').val('');
        break;
	}
	return false;
}


function getSelectValue(select)
{
    select = select.get(0);
    if(select.options[select.selectedIndex])
    {
            return select.options[select.selectedIndex].innerHTML;
    }
    return '';
}
// tworzymy rezultaty wyszukiwania
function createFindObjectSelect(name, data)
{
    var element = $('<select></select>')
    element.attr('id', 'find_'+name);

    // domyslny
    var defaultOption = $('<option value="0"> -- Wybierz -- </option>');
    element.append(defaultOption);

    var founded = false;
    // no i jazda z reszta
    for( var i in data )
    {
        var option = $('<option></option>');
        option.html(data[i]);
        option.val(i);
        element.append(option);
        founded=true;
    }

    // jezeli nic nie znaleziono to wywalamy info
    if(founded == false)
    {
        element = $('<strong>&nbsp;Nic nie znaleziono. Wybierz inną poprzednią opcję. </strong>');
        element.attr('id', 'find_'+name);
    }
    else element.change(searchForObjectOnChange);

    return element;
}

// ajaxowe szukanie
function searchForObject(param, id, callback)
{
	$.ajax({
		type : 'POST',
		url : '/twojeszkolenia/findobject/',
		dataType : 'json',
		data : {
			'param' : param,
			'id'	: id
		},
		success : callback
	});
}