//# ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // //# FILE (function($) { $.fn.fileFx = function(config) { //: var language = $('html').attr('lang') || 'pl'; language = language.toLowerCase(); //: var words = []; words['pl'] = ['Wybierz plik', 'Nie wybrano żadnego pliku', 'Wybrano plików: ']; words['en'] = ['Choose a file', 'No file is selected', 'Selected files: ']; //: var defaults = { choiceValue : ( words[language] ) ? words[language][0] : words['pl'][0], textValue : ( words[language] ) ? words[language][1] : words['pl'][1], multipleText : ( words[language] ) ? words[language][2] : words['pl'][2] }; //: var options = $.extend({}, defaults, config); //: return this.each(function() { var $node = $(this); var $input = $node.find('input'); var $temp = { text : ( $input.data('text') ) ? $input.data('text') : options.textValue, choice : ( $input.data('choice') ) ? $input.data('choice') : options.choiceValue }; var $text = $('
', { 'class': 'Text', html: '' + $temp.text + '' }); var $choice = $('
', { 'class': 'Choice', html: '' + $temp.choice + '' }); $node.append( $text, $choice ); $input.attr('title', '').removeAttr('data-text').removeAttr('data-choice'); $input .on('change.fileEvent', function(e) { var $files = this.files; if ( $files.length > 0 ) { var names = []; var result = ''; for ( var i = 0; i < $files.length; i++ ) { names.push( $files[i].name ); } result = ( names.length == 1 ) ? names[0] : options.multipleText + names.length; $(this).parent('.File').trigger('change'); //: Fix $(this).parent('.File').find('.Text span').text( result ); $(this).parent('.File').find('.Choice').addClass('Change'); } stopEvent(e); }); }); }; })(jQuery); //# INIT FILE $(document).ready(function() { var $formFile = $('form .File'); if ( $formFile.length > 0 ) { $formFile.fileFx(); } });