$(document).ready(function(){
    
    $('#adv_s_zip')
       .click(function(){if($(this).val() == 'Zip Code') $(this).val("")})
       .blur(function(){if($(this).val() == "") $(this).val("Zip Code")})
       .keyup(function(event){ ForInputToUppercese(this, event); });
    
    $('#adv_filter_make').filtersSelectChainAdv({
        url: adv_ajax,
        targets: ['model'/*,'price','year','mileage'*/],
        sources: ['make','condition'/*,'year_from','year_to','mileage_from','mileage_to','price_from','price_to'*/],
        loading: "Loading...",
        empty: 'All',
        sel: 'make'
    });
    $('#adv_filter_model').filtersSelectChainAdv({
        url: adv_ajax,
        targets: ['trim'/*,'price','year','mileage'*/],
        sources: ['make','model','condition'/*,'year_from','year_to','mileage_from','mileage_to','price_from','price_to'*/],
        loading: "Loading...",
        empty: 'All',
        sel: 'model'
    }); 
    $('#adv_filter_trim').filtersSelectChainAdv({
        url: adv_ajax,
        targets: [/*,'price','year','mileage'*/],
        sources: ['make','model','trim','condition'/*,'year_from','year_to','mileage_from','mileage_to','price_from','price_to'*/],
        loading: "Loading...",
        empty: 'All',
        sel: 'trim'
    }); 
    $('#adv_filter_condition').filtersSelectChainAdv({
        url: adv_ajax,
        targets: ['make'/*,'price','year','mileage'*/],
        sources: ['condition'],
        loading: "Loading...",
        empty: 'All',
        sel: 'condition'
    }); 
//    $('select.body').filtersSelectChainAdv({
//        url: 'ajax',
//        targets: ['mileage','price','year'],
//        sources: ['year_from','year_to','make','model','trim','mileage_from','mileage_to','price_from','price_to','condition'],
//        loading: "Loading...",
//        empty: 'All',
//        sel: 'body'
//    });	
});

emptys_adv = { 'make': 'Any Make', 'model': 'Any Model', 'trim': 'Any Trim', 'condition': 'Any Condition'};

jQuery.fn.filtersSelectChainAdv = function()
{
        var settings = arguments[0] || {};
        $(this).change(function()
        {
                filtersSelectChainLoadAdv(settings,this.id);
        });
}
function filtersSelectChainLoadAdv(settings)
{       
	var targets = settings.targets;
	var sources = settings.sources;
	var url = settings.url;
	var loading = settings.loading;
	var empty = settings.empty;
	//var callback = settings.callback;
        var sel = settings.sel; 
        switch(sel){
            case 'make':
                   $('#adv_filter_trim').val('').attr('disabled', 'disabled');
                   break;
            case 'condition':
                   $('#adv_filter_model, #adv_filter_trim').val('').attr('disabled', 'disabled');
                   break;
        }
        var data = "&oper=selectchain_vehicle&trackbar=true&selectchain_common="+sel; 
        
        //if($('#adv_filter_'+sel).val()!='')targets.push(sel);
        
        if((sel == 'model' && $('#adv_filter_model').val() == '') || (sel == 'make' && $('#adv_filter_make').val()=='')) 
            $('#adv_filter_trim').empty().append('<option value="">Any Trim</option>').attr('disabled','disabled');
        
        if(sel == 'make' && $('#adv_filter_make').val() == '')
            $('#adv_filter_model').empty().append('<option value="">Any Model</option>').attr('disabled', 'disabled');
        
        var fl = 0;
        if(sel == 'condition'){
            fl = 1;
            data += '&condition='+$('#adv_filter_condition').val();
        }
        if(sel == 'make' && $('#adv_filter_make').val() == ''){
            fl = 2;
            //data += '&condition='+$('#adv_filter_condition').val();
        }// console.log(targets);
        if(fl == 0){
            for (i = 0; i < sources.length; i++)
            {
                switch(sources[i]){
                    case 'make':
                    case 'model':
                    case 'trim':
                    case 'condition':
                       data += "&"+sources[i]+"="+$('#adv_filter_'+sources[i]).val();
                       break;
                    case 'year_from':
                        //if($('#adv_filter_'+sel).val()!=''&&(sel!='price'||sel!='mileage'||sel!='year'))
                        data += "&"+sources[i]+"="+y_min;
                        break;
                    case 'year_to':
                        //if($('#adv_filter_'+sel).val()!='')
                        data += "&"+sources[i]+"="+y_max;
                        break;
                    case 'mileage_from':
                        //if($('#adv_filter_'+sel).val()!='')
                        data += "&"+sources[i]+"="+o_min;
                        break;
                    case 'mileage_to':
                        //if($('#adv_filter_'+sel).val()!='')
                        data += "&"+sources[i]+"="+o_max;
                        break;
                    case 'price_from':
                        //if($('#adv_filter_'+sel).val()!='')
                        data += "&"+sources[i]+"="+p_min;
                        break;
                    case 'price_to':
                        //if($('#adv_filter_'+sel).val()!='')
                        data += "&"+sources[i]+"="+p_max;
                        break;
                }
            }
        } else {
            data += '&all=1';
        }

	$.ajax({
		url: url,
		data: data,
		type: 'post',
		dataType: 'json',
		success: function (j)
		{   
            if(j){ 
                    for (var k = 0; k < targets.length; k++)
                    {   
                        if(j[targets[k]] != undefined && j[targets[k]] != null){
                            if(targets[k] == 'model')
                                $('#adv_filter_model').attr('disabled','');
    //                            if(j[targets[k]]=='')$('#adv_filter_model').empty().append("<option value=\"\">"+emptys[targets[k]]+"</option>");
                            if(targets[k] == 'trim'){
                                $('#adv_filter_model, #adv_filter_trim').attr('disabled','');                            
                            }
    //                            if(j[targets[k]]=='')$('#adv_filter_trim').empty().append("<option value=\"\">"+emptys[targets[k]]+"</option>");
                            switch(targets[k]){
                                case 'make':
                                    var s = $('#adv_filter_'+targets[k]).val(); 
                                    $('#adv_filter_'+targets[k]).empty().append("<option value=\"\">"+emptys_adv[targets[k]]+"</option>");
                                    
                                    for (i = 0; i < j[targets[k]].length; i++)
                                    {
                                        if(!j[targets[k]][i]["name"] || j[targets[k]][i]["name"] == undefined || j[targets[k]][i]["name"] == null) continue;
                                        id = j[targets[k]][i]["id"];
                                        text = j[targets[k]][i]["name"]+" ("+j[targets[k]][i]["count"]+")"; 
                                        $('#adv_filter_'+targets[k]).append("<option value=\""+id+"\">"+text+"</option>");
                                    } 
                                    if($('#adv_filter_'+targets[k]+' option[value='+s+']').size()){
                                         $('#adv_filter_'+targets[k]).val(s); 
                                    } else { 
                                        $('#adv_filter_'+targets[k]).val('');
                                    }
                                    break;
                                case 'model':
                                    var s = $('#adv_filter_'+targets[k]).val(); 
                                    $('#adv_filter_'+targets[k]).empty().append("<option value=\"\">"+emptys_adv[targets[k]]+"</option>");
                                    
                                    for (i = 0; i < j[targets[k]].length; i++)
                                    {
                                        if(!j[targets[k]][i]["name"] || j[targets[k]][i]["name"] == undefined || j[targets[k]][i]["name"] == null) continue;
                                        id = j[targets[k]][i]["id"];
                                        text = j[targets[k]][i]["name"]+" ("+j[targets[k]][i]["count"]+")"; 
                                        $('#adv_filter_'+targets[k]).append("<option value=\""+id+"\">"+text+"</option>");
                                    } 
                                    if($('#adv_filter_'+targets[k]+' option[value='+s+']').size()){
                                         $('#adv_filter_'+targets[k]).val(s); 
                                    } else { 
                                        $('#adv_filter_'+targets[k]).val('');
                                    }
                                    break;
                                case 'trim':
                                    var s = $('#adv_filter_'+targets[k]).val(); 
                                    $('#adv_filter_'+targets[k]).empty().append("<option value=\"\">"+emptys_adv[targets[k]]+"</option>");
                                    
                                    for (i = 0; i < j[targets[k]].length; i++)
                                    {
                                        if(!j[targets[k]][i]["name"] || j[targets[k]][i]["name"] == undefined || j[targets[k]][i]["name"] == null) continue;
                                        id = j[targets[k]][i]["id"];
                                        text = j[targets[k]][i]["name"]+" ("+j[targets[k]][i]["count"]+")"; 
                                        $('#adv_filter_'+targets[k]).append("<option value=\""+id+"\">"+text+"</option>");
                                    } 
                                    if($('#adv_filter_'+targets[k]+' option[value='+s+']').size()){
                                         $('#adv_filter_'+targets[k]).val(s); 
                                    } else { 
                                        $('#adv_filter_'+targets[k]).val('');
                                    }
                                    break;
                                case 'condition':
                                    var s = $('#adv_filter_'+targets[k]).val(); 
                                    $('#adv_filter_'+targets[k]).empty().append("<option value=\"\">"+emptys_adv[targets[k]]+"</option>");
                                    
                                    for (i = 0; i < j[targets[k]].length; i++)
                                    {
                                        if(!j[targets[k]][i]["name"] || j[targets[k]][i]["name"] == undefined || j[targets[k]][i]["name"] == null) continue;
                                        id = j[targets[k]][i]["id"];
                                        text = j[targets[k]][i]["name"]+" ("+j[targets[k]][i]["count"]+")"; 
                                        $('#adv_filter_'+targets[k]).append("<option value=\""+id+"\">"+text+"</option>");
                                    } 
                                    if($('#adv_filter_'+targets[k]+' option[value='+s+']').size()){
                                         $('#adv_filter_'+targets[k]).val(s); 
                                    } else { 
                                        $('#adv_filter_'+targets[k]).val('');
                                    }
                                    break;
                                case 'year':  
                                    y_min = j[targets[k]].min;
                                    trackbar.getObject('msadv_year'+uid).updateLeftValue(j[targets[k]].min);
                                    y_max = j[targets[k]].max;
                                    trackbar.getObject('msadv_year'+uid).updateRightValue(j[targets[k]].max);
                                    break;
                                case 'mileage':
                                    o_min = j[targets[k]].min;
                                    trackbar.getObject('msadv_odometr'+uid).updateLeftValue(j[targets[k]].min);
                                    o_max = j[targets[k]].max;
                                    trackbar.getObject('msadv_odometr'+uid).updateRightValue(j[targets[k]].max);
                                    break;
                                case 'price': 
                                    if(fl == 1){
                                        p_min = _p_min;
                                        p_max = _p_max;
                                    } else {
                                        p_min = j[targets[k]].min;
                                        p_max = j[targets[k]].max;
                                    }
                                    trackbar.getObject('msadv_price'+uid).updateLeftValue(j[targets[k]].min);
                                    trackbar.getObject('msadv_price'+uid).updateRightValue(j[targets[k]].max);
                                    break;

                            }                       
                           if(fl == 1 || fl == 2)
                               $('#adv_filter_make, #adv_filter_model').val(''); 
                           //if($('#adv_filter_trim').val()==''&&targets[k]=='trim'&&j['trim'].length<1)$('#adv_filter_trim').val('').attr('disabled', 'disabled');
                            
                            }
                            /*
                            if($('#adv_filter_make').val()=='')$('#adv_filter_model','#adv_filter_trim').val('').attr('disabled', 'disabled');
                            if($('#adv_filter_model').val()=='')$('#adv_filter_trim').val('').attr('disabled', 'disabled'); 
                            if(j['condition'] == ''&&j['make'] == ''&&j['model'] == ''&&j['trim'] == ''){
                           $.ajax({
                                url: url,
                                data: {oper:'selectchain_vehicle',selectchain_common:'condition',trackbar:true},
                                type: 'post',
                                dataType: 'json',
                                success: function (j)
                                {                                          
                                        for (var k = 0; k < targets.length; k++){                                            
                                            if(j[targets[k]] != undefined && j[targets[k]] != null){                                                
                                                if(targets[k] == 'model')
                                                    $('#adv_filter_model').attr('disabled','');
                        //                            if(j[targets[k]]=='')$('#adv_filter_model').empty().append("<option value=\"\">"+emptys[targets[k]]+"</option>");
                                                if(targets[k] == 'trim'){
                                                    $('#adv_filter_model, #adv_filter_trim').attr('disabled','');                            
                                                }
                        //                            if(j[targets[k]]=='')$('#adv_filter_trim').empty().append("<option value=\"\">"+emptys[targets[k]]+"</option>");
                                                switch(targets[k]){
                                                    case 'make':
                                                    case 'model':
                                                    case 'trim':
                                                    case 'condition':
                                                        var s = $('#adv_filter_'+targets[k]).val(); 
                                                        $('#adv_filter_'+targets[k]).empty().append("<option value=\"\">"+emptys_adv[targets[k]]+"</option>");
                                                        for (i = 0; i < j[targets[k]].length; i++)
                                                        {
                                                            if(!j[targets[k]][i]["name"] || j[targets[k]][i]["name"] == undefined || j[targets[k]][i]["name"] == null) continue;
                                                            id = j[targets[k]][i]["id"];
                                                            text = j[targets[k]][i]["name"]+" ("+j[targets[k]][i]["count"]+")"; 
                                                            $('#adv_filter_'+targets[k]).append("<option value=\""+id+"\">"+text+"</option>");
                                                        } 
                                                        if($('#adv_filter_'+targets[k]+' option[value='+s+']').size()){
                                                             $('#adv_filter_'+targets[k]).val(s); 
                                                        } else { 
                                                            $('#adv_filter_'+targets[k]).val('');
                                                        }
                                                        break;
                                                    case 'year':  
                                                        y_min = j[targets[k]].min;
                                                        trackbar.getObject('msadv_year'+uid).updateLeftValue(y_min);
                                                        y_max = j[targets[k]].max;
                                                        trackbar.getObject('msadv_year'+uid).updateRightValue(y_max);
                                                        break;
                                                    case 'mileage':
                                                        o_min = j[targets[k]].min;
                                                        trackbar.getObject('msadv_odometr'+uid).updateLeftValue(o_min);
                                                        o_max = j[targets[k]].max;
                                                        trackbar.getObject('msadv_odometr'+uid).updateRightValue(o_max);
                                                        break;
                                                    case 'price': 
                                                        if(fl == 1){
                                                            p_min = _p_min;
                                                            p_max = _p_max;
                                                        } else {
                                                            p_min = j[targets[k]].min;
                                                            p_max = j[targets[k]].max;
                                                        }
                                                        trackbar.getObject('msadv_price'+uid).updateLeftValue(p_min);
                                                        trackbar.getObject('msadv_price'+uid).updateRightValue(p_max);
                                                        break;

                                                }
                                            }
                                        }                                     
                                },error: function ()
                                    {
                                            //jalert("an error occurred",2);
                                    }
                            }); 
                        } */
                    }
                }
			//callback();
		},
		error: function ()
		{
			//jalert("an error occurred",2);
		}
	});
}
function adv_filter_poehali()
{
	var sch_ar = {
		year_from : y_min,
		year_to : y_max,
		make : $('#adv_filter_make').val(),
		model : $('#adv_filter_model').val(),
		trim : $('#adv_filter_trim').val(),
		condition: $('#adv_filter_condition').val(),
		mileage_from : o_min,
		mileage_to : o_max,
		price_from : p_min,
		price_to : p_max,
		zip : $('#adv_s_zip').val(),
		ziprange : zip_range
	};
	advanced_search(sch_ar, adv_status);
}

