zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/app/zte_webui/js/3rd/jquery.fileinput.js b/ap/app/zte_webui/js/3rd/jquery.fileinput.js
new file mode 100755
index 0000000..80971a1
--- /dev/null
+++ b/ap/app/zte_webui/js/3rd/jquery.fileinput.js
@@ -0,0 +1,104 @@
+/**
+ * --------------------------------------------------------------------
+ * jQuery customfileinput plugin
+ * Author: Scott Jehl, scott@filamentgroup.com
+ * Copyright (c) 2009 Filament Group 
+ * licensed under MIT (filamentgroup.com/examples/mit-license.txt)
+ * --------------------------------------------------------------------
+ */
+$.fn.customFileInput = function(){
+	var isChanged = false;
+    var maxLength = 32;
+	//apply events and styles for file input element
+	var fileInput = $(this)
+		.addClass('customfile-input') //add class for CSS
+		.mouseover(function(){ upload.addClass('customfile-hover'); })
+		.mouseout(function(){ upload.removeClass('customfile-hover'); })
+		.focus(function(){
+			upload.addClass('customfile-focus');
+			fileInput.data('val', fileInput.val());
+		})
+		.blur(function(){ 
+			upload.removeClass('customfile-focus');
+			$(this).trigger('checkChange');
+		 })
+		 .bind('disable',function(){
+		 	fileInput.attr('disabled',true);
+			upload.addClass('customfile-disabled');
+		})
+		.bind('enable',function(){
+			fileInput.removeAttr('disabled');
+			upload.removeClass('customfile-disabled');
+		})
+		.bind('checkChange', function(){
+			if(fileInput.val() && fileInput.val() != fileInput.data('val')){
+				fileInput.trigger('change');
+			}
+		})
+		.bind('change',function(){
+			isChanged = true;
+			//get file name
+			var fileName = $(this).val().split(/\\/).pop();
+			//get file extension
+			var fileExt = 'icon-' + getFileType(fileName);//'customfile-ext-' + fileName.split('.').pop().toLowerCase();
+			//update the feedback
+            var tmpFileName = '';
+            var checkLen = 0;
+            for(var i = 0; i < fileName.length && checkLen < maxLength; i++){
+                var c = fileName.charAt(i);
+                if(getEncodeType(c).encodeType == 'UNICODE'){
+                    checkLen += 3;
+                }else{
+                    checkLen += 1;
+                }
+                tmpFileName += c;
+            }
+            if(fileName != tmpFileName){
+                tmpFileName = tmpFileName + '...';
+            } else {
+                tmpFileName = fileName;
+            }
+			uploadFeedback
+				.html(HTMLEncode(tmpFileName)) //set feedback text to filename
+				.removeClass(uploadFeedback.data('fileExt') || '') //remove any existing file extension class
+				.addClass(fileExt) //add file extension class
+				.data('fileExt', fileExt) //store file extension for class removal on next change
+				.addClass('customfile-feedback-populated'); //add class to show populated state
+            upload.attr('title', fileName);
+			//change text of button	
+			uploadButton.html("<span id='uploadBtn' data-trans='change_btn'>"+$.i18n.prop('change_btn')+"</span>");
+		})
+		.click(function(){ //for IE and Opera, make sure change fires after choosing a file, using an async callback
+			fileInput.data('val', fileInput.val());
+			setTimeout(function(){
+				fileInput.trigger('checkChange');
+			},100);
+		});
+		
+	//create custom control container
+	var upload = $('<div class="customfile"></div>');
+	//create custom control button
+	var uploadButton = $('<span class="customfile-button" aria-hidden="true"><span  id="uploadBtn" data-trans="browse_btn">'+$.i18n.prop('browse_btn')+'</span></span>').appendTo(upload);
+	//create custom control feedback
+	var uploadFeedback = $('<span class="customfile-feedback" aria-hidden="true"><span data-trans="no_file_selected">'+$.i18n.prop("no_file_selected")+'</span></span>').appendTo(upload);
+	
+	//match disabled state
+	if(fileInput.is('[disabled]')){
+		fileInput.trigger('disable');
+	}
+
+	//on mousemove, keep file input under the cursor to steal click
+	upload
+		.mousemove(function(e){
+			fileInput.css({
+				'left': e.pageX - upload.offset().left - fileInput.outerWidth() + 20, //position right side 20px right of cursor X)
+                'top': e.pageY - upload.offset().top - 14
+			});	
+		})
+		.insertAfter(fileInput); //insert after the input
+	
+	fileInput.appendTo(upload);
+		
+	//return jQuery
+	return $(this);
+};
\ No newline at end of file