﻿
function get(id){
	return document.getElementById(id);
}

function getCat(type, id, nid) 
{
	if(nid==5)
	{
		getTypes(id);
	}
	var f = true;
	if(nid<1 || nid>4)
	{
		f = false;
	}
    $.ajax({
        url: '/sba/sbalist',
        type: 'POST',
        data: 'type='+ type +'&id='+ id,
        dataType: 'JSON',
        timeout: 5000,
        beforeSend: function(){
        // Выделяем предыдущий селект, если не выделен
		if(nid<6 && nid>1)
		{
			var prevNid = nid-1;
			$('select[id=cat_'+ prevNid +'] option[value='+id+']').attr('selected', 'selected');
		}
		// Блокируем все необходимые select`ы  
			for(var i = nid; i < 5; i++)
			{

				if(f) $('select[id=cat_'+ i +']').attr('disabled', 'disabled');
			}
        },
        complete: function(){
            // Снимаем блокировку
			if(f)
			{
				for(var i = 1; i < nid+1; i++)
				{
					if( get('cat_'+ i).options.length >1)
						$('select[id=cat_'+ i +']').removeAttr('disabled');
				}			
			}
		},
        success: function(response){
			if(f)
			{
				var data = eval('('+ response +')');
				$('select[id=cat_'+ nid +']').fillSelect(data.item, nid);
				getResult(type, id, nid);			
			}
            return false;
        },
        error: function(){
            // Сообщаем пользователю, что произошла ошибка
            alert('Ошибка данных.');
            return false;
        }
    });
}

function getResult(type, id, nid) 
{
    $.ajax({
        url: '/sba/sbalist/'+nid,
        type: 'POST',
        data: 'type='+ type +'&id='+ id,
        dataType: 'JSON',
        timeout: 5000,
        beforeSend: function(){
			alertMess("<div style='margin:5px;font-size:12px;'><center>получение данных...</center></div>");
        },
        complete: function(){

		},
        success: function(response){
			doResult(response);
            return false;
        },
        error: function(){
            // Сообщаем пользователю, что произошла ошибка
            alert('Ошибка данных.');
            return false;
        }
    });
}


(function($)
{

    /* Очищаем select */
    $.fn.clearSelect = function(getId) {

			var d = get(getId);
            /* Проверяем является ли элемент select`ом */
            if(d.tagName=='SELECT') {
                d.options.length = 0;
                /* Блокируем на время заполнения */
                d.style.disabled = 'disabled';
				
				var option = new Option('-----','0');

				/* Добавляем новый option к select`у */
				if($.support.cssFloat) {
					d.add(option,null);

				} else {
					d.add(option);
				}

            }

    }
 
    /* Заполняем select переданными данными */
    $.fn.fillSelect = function(dataArray, nid) {
			
			if(nid<1 || nid>4) return false;
			for(var i = nid; i < 5; i++)
			{

				this.clearSelect('cat_'+i);
			} 
				

			var d = get('cat_' + nid);
            if(d.tagName=='SELECT') {
                var currentSelect = d;				
                $.each(dataArray,function(index,data){
                    /* Если определено 'name' */

                    if(data.name) {
                        /* Создаем новый option */
                        var option = new Option(data.name,data.id);

                        /* Добавляем новый option к select`у */
                        if($.support.cssFloat) {
                            currentSelect.add(option,null);

                        } else {
                            currentSelect.add(option);
                        }

                    }
                });

            }
    }
})(jQuery);

function doResult(res)
{
	$('#resultContent').empty();
	$('#resultContent').append(res);
}

function alertMess(res)
{
	$('#alertMess').append(res);
}

function getTypes(id_mod)
{
    $.ajax({
        url: '/sba/sbaresult',
        type: 'POST',
        data: 'id_mod='+ id_mod,
        dataType: 'JSON',
        timeout: 5000,
        beforeSend: function(){

        },
        complete: function(){

		},
        success: function(response){

            //var data = eval('('+ response +')');
			doResult(response);
            return false;
        },
        error: function(){
            // Сообщаем пользователю, что произошла ошибка
            alert('Ошибка данных.');
            return false;
        }
    });
}

$(document).ready(function(){
    

	$('select[id=cat_1]').change(function(){ getCat('avmdl', $('select[id=cat_1]').val(), 2); });
	$('select[id=cat_2]').change(function(){ getCat('year', $('select[id=cat_2]').val(), 3); });
	$('select[id=cat_3]').change(function(){ getCat('avmdf', $('select[id=cat_3]').val(), 4); });
	$('select[id=cat_4]').change(function(){ getTypes($('select[id=cat_4]').val()); });

});

