/* ########## autoSubmit (copyright e2see.de) ##########
<script>
$(document).ready(function(){
    $('form, select').each(function(){
        $(this).autoSubmit_connect();
    });
});
</script>
*/

$.fn.autoSubmit_connect = function(){

    var timer       = false;
    var thisOb      = this;
    var autoObjects = false;
    var autoForm    = false;

    if(thisOb.is('form')){
        var autoObjects = thisOb.find('select, input, textarea').not('input[type="hidden"]');

    }else if(thisOb.is('select, input, textarea') && thisOb.is('input[type="hidden"]') == false){
        var autoObjects = thisOb;
    }


    if(autoObjects){
        if(autoObjects.closest('form').length == 1){
            autoForm = autoObjects.closest('form');

        } else if(thisOb.attr('form').length > 0 && $('#' + thisOb.attr('form') ).filter('form').length == 1 ){
            autoForm = $('#' + thisOb.attr('form') ).filter('form');
        }
    }


    if(autoObjects && autoForm){
        autoObjects.each(function(){

            var thisAutoObject = $(this);

            if(thisAutoObject.is('select')){

                if(autoObjects.length == 1){
                    var duration = 20;
                } else {
                    var duration = 40;
                }

                thisAutoObject.on('change', function(){
                    clearTimeout(timer);
                    timer = setTimeout(function(){
                        autoForm.trigger('submit');
                    }, duration);
                });

            } else if(thisAutoObject.is('input[type="checkbox"], input[type="radio"]')){

                if(autoObjects.length == 1){
                    var duration = 20;
                } else {
                    var duration = 800;
                }

                thisAutoObject.on('change', function(event){
                        clearTimeout(timer);
                        timer = setTimeout(function(){
                            autoForm.trigger('submit');
                        }, duration);
                });

            } else if(thisAutoObject.is('input, textarea')){
                thisAutoObject.on('input', function(event){
                    clearTimeout(timer);
                    timer = setTimeout(function(){
                        autoForm.trigger('submit');
                    }, 1200);

                });
            }


        });
    }

    return thisOb;

}





/* cdn 1ms */