/*
    UZ AJAX filter

    //
    // Options
    //

    ajaxLib
        Expected value: ami|jquery
        Default: "ami"

    requestType
        Expected value: GET|POST
        Default: "GET"
        NOTE: AMI ajax supports the POST method not correctly

    langData
        Expected value: 2 chars language name
        Default: "ru"

    dataSource
        Expected value: .php file name
        Default: "uz_get_custom_data.php"

    //
    // Init example
    //

    var hOpt = {
        ajaxLib: "jquery",
        requestType: "POST",
        langData: "en",
        dataSource: "uz_custom_filter.php",
    };
    uzAjaxStuff.init(hOpt);

    // For JQuery use
    $(document).ready(function(){
    });



//*/

//
// Init ajax stuff
//

var uzAjaxFilter = {
    debug: 0,
    ajaxLib: "ami",
    requestType: "GET",
    langData: "ru",
    dataSource: "uz_custom_filter.php",
    async: true,

    hideEmpty: true,
    autoSubmit: false,

    optionsDisableMethod: "erase", //disable|erase

    aDefaultFieldsDisabledStatus: {},

    defaultDisplay: "inline",

    selectCatSupport: 0,
    catSelectId: "select_cat_id",
    scriptLink: "",
    currentCatId: 0,
    //aCatsSublinks: new Array(),

    init: function(opt){
        // Set options
        if(typeof(opt) != 'undefined'){
            this.setOptions(opt);
        }

        // Enable debug by ip
        if(typeof(DEBUG_BY_IP) != 'undefined'){
            if(DEBUG_BY_IP == 1){
                this.debug = 1;
            }
        }

        // Init ajax stuff
        this.reinitAxajStuff();

        this.getFieldsDefaultDisabled();

        if(this.selectCatSupport){
            this.initCurrentCat();
        }

    },

    setOptions: function(opt){
        for(var key in opt){
            this[key] = opt[key];
        }
    },

    reinitAxajStuff: function(){
        var hOpt = {
            ajaxLib: this.ajaxLib,
            async: this.async,
            requestType: this.requestType,
            langData: this.langData,
            dataSource: this.dataSource
        };
        uzAjaxStuff.init(hOpt);
    },

    getFieldsList: function() {
        var aRes = new Array();
        if(uzAFilterFields.length){
            for(var i = 0; i < uzAFilterFields.length; i++){
                aRes.push(uzAFilterFields[i].name);
            }
        }
        return aRes.join("|");
    },

    getFieldProp: function(name) {
        if(uzAFilterFields.length){
            for(var i = 0; i < uzAFilterFields.length; i++){
                if(name == uzAFilterFields[i].name){
                    return uzAFilterFields[i];
                }
            }
        }
        return {};
    },

    applyFilterData: function(content) {
        if(uzAjaxFilter.debug){
            //alert(content);
            var debug = uzAjaxStuff.getResItems(content, "debug").join("");
            if(debug.length){
                alert(debug);
            }
        }

        var aFieldsData = uzAjaxStuff.getResItems(content, "fields_data");
        if(uzAjaxFilter.debug){
            //alert(aFieldsData.join("\n\n"));
        }
        if(aFieldsData.length){
            for(var i = 0; i < aFieldsData.length; i++){
                uzAjaxFilter.populateField(aFieldsData[i]);
            }
        }

        uzAjaxFilter.enableFields();

    },

    populateField: function(data) {
        var name = uzAjaxStuff.getResItems(data, "name").join("");
        var hProp = uzAjaxFilter.getFieldProp(name);
        if(uzAjaxFilter.debug){
            //alert("populateField "+hProp.name+" - "+hProp.type);
        }
        if(typeof(hProp.type) != 'undefined'){
            switch(hProp.type){
                case "select":
                    if(typeof(hProp.multi) == 'undefined' || hProp.multi == ''){
                        uzAjaxFilter.populateSelect(data);
                    } else {
                        uzAjaxFilter.populateSelectMulti(data);
                    }
                    break;
                case "checkbox":
                    uzAjaxFilter.populateCheckbox(data);
                    break;
                case "price_from":
                case "price_to":
                    uzAjaxFilter.populateText(data);
                    break;
                case "text":
                    uzAjaxFilter.populateText(data);
                    break;
                default:
                    break;
            }
        }
    },

    populateSelect: function(data) {
        var name = uzAjaxStuff.getResItems(data, "name").join("");
        var defaultVal = uzAjaxStuff.getResItems(data, "default_val").join("");
        var aVals = uzAjaxStuff.getResItems(data, "exist_vals");

        var hProp = uzAjaxFilter.getFieldProp(name);

        var cForm = document.forms[_cms_document_form];
        var el = cForm.elements[name];

        var i, n;

        if(uzAjaxFilter.debug){
            //alert(data);
            //alert(name);
            //alert(aVals.length);
            //alert(aVals)
        }

        if(this.optionsDisableMethod == "erase"){
            // Drop old options
            n = el.length;
            //value = el.value;
            for(i=n-1; i>0; i--) {
                el.options[i] = null;
            }

            if(aVals.length){
                // Add new options
                for(i=0; i<aVals.length; i++) {
                    el.options[i+1] = new Option(aVals[i], aVals[i]);
                }
                el.value = defaultVal;
            
            } else {
                el.value = "";
            }

        } else {

            for(i=1; i<el.length; i++) {
                var isOn = false;
                if(aVals.length){
                    for(j=0; j<aVals.length; j++) {
        //alert("aVals[j] = "+aVals[j]+", el.options[i].value = "+el.options[i].value);
                        if(aVals[j] == el.options[i].value){
                            isOn = true;
                        }
                    }
                }
                if(isOn){
        //alert(el.options[i].value+" is on");
                    //el.options[i].style.display = "";
                    el.options[i].disabled = false;
                } else {
                    //el.options[i].style.display = "none";
                    el.options[i].disabled = true;
                }
            }
        }

        if(aVals.length){
            // Show field
            if(document.getElementById("fld_box_"+name)){
                document.getElementById("fld_box_"+name).style.display = this.defaultDisplay;//"inline";
            }

        
        } else {
            el.value = "";

            // Hide field
            if(this.hideEmpty){
                if(document.getElementById("fld_box_"+name)){
                    document.getElementById("fld_box_"+name).style.display = "none";
                }
            }
        }

    },

    populateSelectMulti: function(data) {
        var name = uzAjaxStuff.getResItems(data, "name").join("");
        var defaultVals = uzAjaxStuff.getResItems(data, "default_val").join("");
        var aVals = uzAjaxStuff.getResItems(data, "exist_vals");

        var hProp = uzAjaxFilter.getFieldProp(name);

        var cForm = document.forms[_cms_document_form];
        var el = cForm.elements[name];

        var i, n;

        if(uzAjaxFilter.debug){
            //alert(data);
            //alert(name);
            //alert(aVals.length);
            //alert(aVals)
        }

        // Drop old options
        /*
        n = el.length;
        //value = el.value;
        for(i=n-1; i>0; i--) {
            el.options[i] = null;
        }
        //*/


        var selectedCnt = 0;

        for(i=1; i<el.length; i++) {
            var isOn = false;
            if(aVals.length){
                for(j=0; j<aVals.length; j++) {
                    if(aVals[j] == el.options[i].value){
                        isOn = true;
                    }
                }
            }
            if(isOn){
                //el.options[i].style.display = "";
                el.options[i].disabled = false;
                if(el.options[i].selected){
                    selectedCnt++;
                }
                //el.options[j].disabled = false;
            } else {
                //alert(el.options[i].value+" is off");
                //el.options[i].style.display = "none";
                el.options[i].selected = false;
                el.options[i].disabled = true;
            }
        }

        if(aVals.length){
            // Show field
            if(document.getElementById("fld_box_"+name)){
                document.getElementById("fld_box_"+name).style.display = this.defaultDisplay;//"inline";
            }

            if(selectedCnt == 0){
                el.options[0].selected = true;
                el.value = "";
            }
        } else {
            el.options[0].selected = true;
            el.value = "";

            // Hide field
            if(this.hideEmpty){
                if(document.getElementById("fld_box_"+name)){
                    document.getElementById("fld_box_"+name).style.display = "none";
                }
            }
        }
    },

    populateCheckbox: function(data) {
        if(uzAjaxFilter.debug){
            //alert(data);
        }
        var name = uzAjaxStuff.getResItems(data, "name").join("");
        var defaultVal = uzAjaxStuff.getResItems(data, "default_val").join("");
        var aVals = uzAjaxStuff.getResItems(data, "exist_vals");

        var hProp = uzAjaxFilter.getFieldProp(name);

        var i, j, val, isExists, cName;

        if(uzAjaxFilter.debug){
            //alert(aVals.join(","));
            //alert(name);
        }


        if(name.indexOf("[]") <= 0){
            // Single checkbox
            var oFld = document.getElementById(name);
            if(defaultVal == '0'){
                oFld.checked = false;
            } else {
                oFld.checked = true;
            }

            // Support From value
            /*
            if(name.indexOf("From") > 0){
                if(aVals.length > 1){
                    // Enable checkbox
                    document.getElementById(name).disabled = false;
                } else {
                    // Disable checkbox
                    if(i > 0){
                        document.getElementById(name).checked = false;
                        document.getElementById(name).disabled = true;
                    }
                }
            }
            */

        } else {
            // Walk over checkboxes
            //chk_ext_custom_29[]_0
            i = 0;
            cName = "chk_"+name+"_"+i;
            if(uzAjaxFilter.debug){
                //alert("check field '"+cName+"'");
            }
            while(document.getElementById(cName)){
                isExists = 0;

                if(uzAjaxFilter.debug){
                    //alert(cName);
                }

                if(aVals.length){
                    val = document.getElementById(cName).value;
                    for(j=0; j < aVals.length; j++) {
                        if(val == aVals[j]){
                            isExists = 1;
                            break;
                        }
                    }
                }

                if(uzAjaxFilter.debug){
                    //alert("have field '"+cName+"', value='"+val+"', isExists = "+isExists+", in "+aVals.join(","));
                }

                if(isExists){
                    // Enable checkbox
                    document.getElementById(cName).disabled = false;
                } else {
                    // Disable checkbox
                    if(i > 0){
                        document.getElementById(cName).checked = false;
                        document.getElementById(cName).disabled = true;
                    }
                }

                i++;
                cName = "chk_"+name+"_"+i;
            }
        }

        if(aVals.length){
            if(uzAjaxFilter.debug){
                //alert(aVals.join(","));
                //alert("Show field "+name+" id = '"+"fld_box_"+name+"'");
            }
            // Show field
            if(document.getElementById("fld_box_"+name)){
                document.getElementById("fld_box_"+name).style.display = this.defaultDisplay;//"inline";
            }
           
        } else {
            if(uzAjaxFilter.debug){
                //alert("Hide field "+name+" id = '"+"fld_box_"+name+"'");
            }
            // Hide field
            if(this.hideEmpty){
                if(document.getElementById("fld_box_"+name)){
                    document.getElementById("fld_box_"+name).style.display = "none";
                }
            }

            // Uncheck checkboxes
            /*
            i = 0;
            cName = "chk_"+name+"_";
            while(document.getElementById(cName+i)){
                // Disable checkbox
                document.getElementById(cName+i).checked = false;
                i++;
            }
            //*/

        }
    },

    populateText: function(data) {
        var name = uzAjaxStuff.getResItems(data, "name").join("");
        var defaultVal = uzAjaxStuff.getResItems(data, "default_val").join("");

        var hProp = uzAjaxFilter.getFieldProp(name);

        var cForm = document.forms[_cms_document_form];
        var el = cForm.elements[name];

        el.value = defaultVal;
    },


    onFieldChange: function(isManualChange){

        if(uzAjaxFilter.debug){
            //alert(name);
            //alert("Hide field "+name+" id = '"+"fld_box_"+name+"'");
        }

        var cForm = document.forms[_cms_document_form];

        if(typeof(isManualChange) != 'undefined'){
            if(isManualChange == 1){
                if(this.autoSubmit){
                    if(typeof(CheckFilterForms) != 'undefined'){
                        CheckFilterForms(cForm, 0);
                    }
                    return;
                }
            }
        }

        // Prepare url params
        var urlParams = "";

        // Prepare subpath
        var aTmp = active_module_link.split('?');
        var subpath = aTmp[0].substr(frontBaseHref.length);
        urlParams += "&subpath=" + subpath;

        // Prepare search subcats flag
        var searchSubCats = 1;
        if(document.getElementById("flt_search_subcats")){
            if(document.getElementById("flt_search_subcats").checked){
                searchSubCats = 1;
            } else {
                searchSubCats = 0;
            }
        }
        urlParams += "&search_subcats=" + searchSubCats;

        // Prepare category id
        var catId = 20000;
        if(typeof(cForm.catid) != 'undefined'){
            // Apply selected cat
            if(this.selectCatSupport && document.getElementById(this.catSelectId)){
                catId = document.getElementById(this.catSelectId).value;
                cForm.catid.value = catId;
            } else {
                catId = cForm.catid.value;
            }
        }
        urlParams += "&catid=" + catId;

        // Set submit url to selected category
        this.setForcedSubmitUrl(catId);

        // Reset other fields when category changed
        var forceEmptyVals = 0;
        if(this.currentCatId != catId){
            forceEmptyVals = 1;
            // Store new cat id
            this.currentCatId = catId;
        }

        // Collect actual fields values from form
        if(uzAFilterFields.length){
            for(var i = 0; i < uzAFilterFields.length; i++){
                if(forceEmptyVals){
                    urlParams += "&"+uzAFilterFields[i].name+"=";
                } else {
                    switch(uzAFilterFields[i].type){
                        case "select":
                            if(uzAFilterFields[i].multi == ''){
                                urlParams += "&"+uzAFilterFields[i].name+"="+encodeURIComponent(cForm.elements[uzAFilterFields[i].name].value);
                            } else {
                                var oSel = cForm.elements[uzAFilterFields[i].name];
                                for(var j = 0; j < oSel.options.length; j++){
                                    if(oSel.options[j].selected && oSel.options[j].style.display != "none"){
                                        urlParams += "&"+uzAFilterFields[i].name+"="+encodeURIComponent(oSel.options[j].value);
                                        //alert("multiselect add val "+uzAFilterFields[i].name+"="+oSel.options[j].value);
                                        //alert(urlParams);
                                    }
                                }
                            }
                            break;
                        case "checkbox":
                            if(uzAFilterFields[i].name.indexOf("[]") <= 0){
                                // Single checkbox
                                val = (cForm.elements[uzAFilterFields[i].name].checked) ? 1 : 0;
                                urlParams += "&"+uzAFilterFields[i].name+"="+val;
                            } else {
                                var j = 0;
                                var cName = "chk_"+uzAFilterFields[i].name+"_";
                                while(document.getElementById(cName+j)){
                                    if(document.getElementById(cName+j).checked){
                                        urlParams += "&"+uzAFilterFields[i].name+"="+encodeURIComponent(document.getElementById(cName+j).value);
                                    }
                                    j++;
                                }
                            }
                            break;
                        case "radio":
                            var j = 0;
                            var cName = "rd_"+uzAFilterFields[i].name+"_";
                            while(document.getElementById(cName+j)){
                                if(document.getElementById(cName+j).checked){
                                    urlParams += "&"+uzAFilterFields[i].name+"="+encodeURIComponent(document.getElementById(cName+j).value);
                                }
                                j++;
                            }
                            break;
                        case "price_from":
                            urlParams += "&"+uzAFilterFields[i].name+"="+encodeURIComponent(cForm.elements[uzAFilterFields[i].name].value);
                            break;
                        case "price_to":
                            urlParams += "&"+uzAFilterFields[i].name+"="+encodeURIComponent(cForm.elements[uzAFilterFields[i].name].value);
                            break;
                        case "text":
                            urlParams += "&"+uzAFilterFields[i].name+"="+encodeURIComponent(cForm.elements[uzAFilterFields[i].name].value);
                            break;
                        default:
                            break;
                    }
                }
            }
        }

        if(uzAjaxFilter.debug){
            //alert(urlParams);
            //alert("Hide field "+name+" id = '"+"fld_box_"+name+"'");
        }
/*        
        var subpath;

        if(aTmp.length > 1){
            filters = aTmp[1];
            // Parse url params
            var hParams = uzAjaxStuff.parseUrlParams(filters);

            // Strip action
            if(typeof(hParams.action) != 'undefined'){
                delete(hParams.action);
            }

            // Prepare url params
            filters = uzAjaxStuff.prepareUrlParams(hParams);

            if(this.debug){
                //alert("filters orig = '"+aTmp[1]+"'\n\nfilters prepared = '"+filters+"'");
                //alert(urlParams);
            }

        }
        var urlParams = "&subpath=" + subpath + filters;

        if(this.debug){
            //alert(subpath+", filters = "+filters);
            //alert(urlParams);
        }
  //*/  

        var fieldsList = this.getFieldsList();

        this.disableFields();

        // Re-init ajax stuff
        this.reinitAxajStuff();

        var hData = {
            action: "get_flt_data",
            fields_list: fieldsList,
            plainUrlParams: urlParams
        };
        uzAjaxStuff.request(hData, uzAjaxFilter.applyFilterData);
    },


    setForcedSubmitUrl: function(catId) {
        var cForm = document.forms[_cms_document_form];
        var varName = cForm.name + "_forceSubmitUrl";
        if(document.getElementById(this.catSelectId)){
            var sublink = $("#"+this.catSelectId+" option:selected").attr("sublink");
            eval(varName + " = '" + this.scriptLink + "/" + sublink + "?'");
        }
    },

    // Return array of fields used names with not empty value.
    getFieldsFilteredBy: function() {
        var aRes = new Array();
        if(typeof(uzAFilterFields) == 'undefined'){
            return aRes;
        }
        var cForm = this.getForm();
        if(cForm != false && uzAFilterFields.length){
            for(var i = 0; i < uzAFilterFields.length; i++){
                switch(uzAFilterFields[i].type){
                    case "select":
                        if(uzAFilterFields[i].multi == ''){
                            if(cForm.elements[uzAFilterFields[i].name].value != ""){
                                aRes.push(uzAFilterFields[i].name);
                            }
                        } else {
                            var oSel = cForm.elements[uzAFilterFields[i]]
                            for(var j = 0; j < oSel.options.length; j++){
                                if(oSel.options[j].selected){
                                    aRes.push(uzAFilterFields[i].name);
                                    break;
                                }
                            }
                        }
                        break;
                    case "checkbox":
                        var j = 0;
                        var cName = "chk_"+uzAFilterFields[i].name+"_";
                        while(document.getElementById(cName+j)){
                            if(document.getElementById(cName+j).checked && document.getElementById(cName+j).value != ""){
                                aRes.push(uzAFilterFields[i].name);
                            }
                            j++;
                        }
                        break;
                    case "price_from":
                        if(cForm.elements[uzAFilterFields[i].name].value != ""){
                            aRes.push(uzAFilterFields[i].name);
                        }
                        break;
                    case "price_to":
                        if(cForm.elements[uzAFilterFields[i].name].value != ""){
                            aRes.push(uzAFilterFields[i].name);
                        }
                        break;
                    case "text":
                        if(cForm.elements[uzAFilterFields[i].name].value != ""){
                            aRes.push(uzAFilterFields[i].name);
                        }
                        break;
                    default:
                        break;
                }
            }
        }
        return aRes;
    },

    getForm: function() {
        if(typeof(_cms_document_form) == 'undefined'){
            return false;
        }
        if(typeof(document.forms[_cms_document_form]) == 'undefined'){
            return false;
        }
        return document.forms[_cms_document_form];
    },

    getFieldsDefaultDisabled: function() {
        var cForm = this.getForm();
        if(cForm == false || typeof(uzAFilterFields) == 'undefined'){
            return;
        }
        for(var i = 0; i < uzAFilterFields.length; i++){
            if(typeof(cForm[uzAFilterFields[i].name]) != 'undefined'){
                switch(uzAFilterFields[i].type){
                    case "select":
                        this.aDefaultFieldsDisabledStatus[uzAFilterFields[i].name] = cForm[uzAFilterFields[i].name].disabled;
                        break;
                    case "checkbox":
                        /*
                        var j = 0;
                        var cName = "chk_"+uzAFilterFields[i].name+"_";
                        while(document.getElementById(cName+j)){
                            if(document.getElementById(cName+j).checked && document.getElementById(cName+j).value != ""){
                                aRes.push(uzAFilterFields[i].name);
                            }
                            j++;
                        }
                        //*/
                        break;
                    case "price_from":
                        this.aDefaultFieldsDisabledStatus[uzAFilterFields[i].name] = cForm[uzAFilterFields[i].name].disabled;
                        break;
                    case "price_to":
                        this.aDefaultFieldsDisabledStatus[uzAFilterFields[i].name] = cForm[uzAFilterFields[i].name].disabled;
                        break;
                    case "text":
                        this.aDefaultFieldsDisabledStatus[uzAFilterFields[i].name] = cForm[uzAFilterFields[i].name].disabled;
                        break;
                    default:
                        break;
                }
            }
        }
    },


    disableFields: function() {
        var cForm = this.getForm();
        if(cForm == false || typeof(uzAFilterFields) == 'undefined'){
            return;
        }
        for(var i = 0; i < uzAFilterFields.length; i++){
            if(typeof(cForm[uzAFilterFields[i].name]) != 'undefined'){
                switch(uzAFilterFields[i].type){
                    case "select":
                        cForm[uzAFilterFields[i].name].disabled = true;
                        break;
                    case "checkbox":
                        /*
                        var j = 0;
                        var cName = "chk_"+uzAFilterFields[i].name+"_";
                        while(document.getElementById(cName+j)){
                            if(document.getElementById(cName+j).checked && document.getElementById(cName+j).value != ""){
                                aRes.push(uzAFilterFields[i].name);
                            }
                            j++;
                        }
                        //*/
                        break;
                    case "price_from":
                        cForm[uzAFilterFields[i].name].disabled = true;
                        break;
                    case "price_to":
                        cForm[uzAFilterFields[i].name].disabled = true;
                        break;
                    case "text":
                        cForm[uzAFilterFields[i].name].disabled = true;
                        break;
                    default:
                        break;
                }
                // Disable subfields
                if(typeof(uzAFilterFields[i].aSubfieldsId) != 'undefined'){
                    this.setSubfieldsDisabledStatus(uzAFilterFields[i].aSubfieldsId, true);
                }
            }
        }
    },

    enableFields: function() {
        var cForm = this.getForm();
        if(cForm == false || typeof(uzAFilterFields) == 'undefined'){
            return;
        }
        for(var i = 0; i < uzAFilterFields.length; i++){
            if(typeof(cForm[uzAFilterFields[i].name]) != 'undefined'){
                switch(uzAFilterFields[i].type){
                    case "select":
                        cForm[uzAFilterFields[i].name].disabled = this.aDefaultFieldsDisabledStatus[uzAFilterFields[i].name];
                        break;
                    case "checkbox":
                        /*
                        var j = 0;
                        var cName = "chk_"+uzAFilterFields[i].name+"_";
                        while(document.getElementById(cName+j)){
                            if(document.getElementById(cName+j).checked && document.getElementById(cName+j).value != ""){
                                aRes.push(uzAFilterFields[i].name);
                            }
                            j++;
                        }
                        //*/
                        break;
                    case "price_from":
                        cForm[uzAFilterFields[i].name].disabled = this.aDefaultFieldsDisabledStatus[uzAFilterFields[i].name];
                        break;
                    case "price_to":
                        cForm[uzAFilterFields[i].name].disabled = this.aDefaultFieldsDisabledStatus[uzAFilterFields[i].name];
                        break;
                    case "text":
                        cForm[uzAFilterFields[i].name].disabled = this.aDefaultFieldsDisabledStatus[uzAFilterFields[i].name];
                        break;
                    default:
                        break;
                }

                // Enable subfields
                if(typeof(uzAFilterFields[i].aSubfieldsId) != 'undefined'){
                    this.setSubfieldsDisabledStatus(uzAFilterFields[i].aSubfieldsId, false);
                }
            }
        }
    },

    setSubfieldsDisabledStatus: function(aSubfieldsId, status) {
        for(var i = 0; i < aSubfieldsId.length; i++){
            var subfieldId = aSubfieldsId[i];

            if(document.getElementById(subfieldId)){
                document.getElementById(subfieldId).disabled = status;
            }
        }
    },

    //
    // Select category section
    //
    initCurrentCat: function(){
        var cForm = document.forms[_cms_document_form];
        if(document.getElementById(this.catSelectId) && typeof(cForm.elements["catid"]) != 'undefined'){
            this.currentCatId = cForm.elements["catid"].value;
            document.getElementById(this.catSelectId).value = this.currentCatId;
        }
    },



    //
    // Select category section end
    //


    endvar: 1
}







//
// On page load fill the filter fields
//
//var uzHOpt = {
//  /* define filter options */
//}
//uzAjaxFilter.init(uzHOpt);
//uzAjaxFilter.onFieldChange(0);

