function BusquedaForm(form) {
    KsFormBase(form);
    var $form = $(form);
    $form.addClass('AutoForm');

    form.extendedCheckErrors = function(errorMessage, formvalues) {
        var searchstringscount = KsFormBase.Count(formvalues.values, function(name) { return name != 'formato'; });
        if (searchstringscount == 0) {
            errorMessage.html('<div class="ui-state-error ui-corner-all" style="padding: 0pt 0.7em;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: 0.3em;"/><strong>' + $('#messageError_atencion').val() + ' </strong>'+ $('#messageError_escribio').val() +'</p></div>');
            errorMessage.fadeIn('slow');
            return false;
        } else if (
            ((formvalues.values['searchfield'] != undefined) && formvalues.values['searchfield'].length < 2)
            || ((formvalues.values['allWordsField'] != undefined) && formvalues.values['allWordsField'].length < 2)
            || ((formvalues.values['exactFraseField'] != undefined) && formvalues.values['exactFraseField'].length < 2)
            || ((formvalues.values['anyWordField'] != undefined) && formvalues.values['anyWordField'].length < 2)
            || ((formvalues.values['excludingWordsField'] != undefined) && formvalues.values['excludingWordsField'].length < 2)
            || ((formvalues.values['inTituloField'] != undefined) && formvalues.values['inTituloField'].length < 2)
          ) {
            errorMessage.html('<div class="ui-state-error ui-corner-all" style="padding: 0pt 0.7em;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: 0.3em;"/><strong>' + $('#messageError_atencion').val() + ' </strong>'+ $('#messageError_lenght').val() +'</p></div>');
            errorMessage.fadeIn('slow');
            return false;
        }
        return true;
    }

    form.submit = function() {
        var formvalues = form.getFormValues(true, false, true);

        if (form.checkErrors(formvalues)) {
            var values = formvalues.values;
            if (
                form.IsInAdvancedMode()
                && KsFormBase.Count(
                    values,
                    function(fieldName) {
                        return fieldName != 'searchfield' && fieldName != 'fieldName'
                    }) > 0)
            {
                values['advanced'] = true;
            }
            var reff = '?' + KsFormBase.SerializeToParam(values,false);
            window.location.href = reff;
        }
    }

    form.IsInAdvancedMode = function() {
        return ($('.BusquedaAvanzada').is(':visible'));
    }

    form.toggleMode = function() {
        if (form.IsInAdvancedMode()) {
            $('.BusquedaAvanzada').hide();
            $('.BusquedaSimple').show();
        } else {
            $('.BusquedaSimple').hide();
            $('.BusquedaAvanzada').show();
        }
    }

    $form.find('.FieldControl').each(function() {
        this.userAcceptKey = form.submit;
    });

    $form.find('.btnSearch').click(function(){        
        form.submit();        
        return false;
    });

    $form.find('.btnToggleMode').click(form.toggleMode);

    if (KsFormBase.Gup('advanced') != null && !form.IsInAdvancedMode()) {
        if (window.location.href.indexOf('&') == -1) {
            form.toggleMode();
        } else {
            var txt = $form.find("#messageHayCriteriosDeBusquedaAvanzada").val();
            $form.find(".BusquedaSimple.busqueda_avanzada.btnToggleMode").html(txt);
            if (KsFormBase.Gup('searchfield') == null)
                form.toggleMode();
        }
    }

    form.AvanzadaSegunFormato = function(formato) {
        $('.BusquedaAvanzadaFormato').hide();
        if (formato != '/all/')
            $('.BusquedaAvanzadaFormato.' + formato).show();
    }

    form.FieldChange = function(control, value) {
        if (control.id == 'formatoCombo') {
            form.AvanzadaSegunFormato(value);
        }
    };
    form.AvanzadaSegunFormato(eval($form.find('.FieldControl#formatoCombo .original_value').val()));
}

$(document).ready(function() {
    $('.ks_ajax_control.BusquedaForm').each(function() {
        BusquedaForm(this);
    })
});

