1 | /* file: ui.inputColorsFB.js - v1.0.0 | minified on 2011/01/27 with http://jscompress.com/ */ |
---|
2 | (function($) |
---|
3 | {var publicMethods={init:function(opt) |
---|
4 | {return this.each(function() |
---|
5 | {var $this=$(this),data=$this.data('options'),objects=$this.data('objects'),properties=$this.data('properties'),options={disabled:false,prompt:'>',historySize:8,historyHeight:60,change:null,submit:null};$this.data('options',options);if(!properties) |
---|
6 | {$this.data('properties',{initialized:false,value:'',isValid:true,mouseIsOver:false,historyIsVisible:false,inputMargins:0});properties=$this.data('properties');} |
---|
7 | if(!objects) |
---|
8 | {objects={container:$('<div/>',{'class':'ui-inputConsole',css:{width:'100%'}}).bind('click.inputConsole',function() |
---|
9 | {objects.input.focus();}).bind('mouseenter',function() |
---|
10 | {properties.mouseIsOver=true;}).bind('mouseleave',function() |
---|
11 | {properties.mouseIsOver=false;}),inputContainer:$('<div/>',{'class':'ui-inputConsole-input'}),input:$('<input>',{type:"text",value:''}).bind('focusout.inputConsole',function() |
---|
12 | {privateMethods.lostFocus($this);}).bind('focus.inputConsole',function() |
---|
13 | {privateMethods.getFocus($this);}).bind('keyup.inputConsole',function(event) |
---|
14 | {privateMethods.keyUp($this,event);}),prompt:$('<div/>',{html:options.prompt,'class':'ui-inputConsole-prompt'}),historyContainer:$('<div/>',{'class':'ui-inputConsole-history',css:{display:'none'}}),historyList:$('<ul/>')};$this.html('').append(objects.container.append(objects.historyContainer.append(objects.historyList)).append(objects.inputContainer.append(objects.prompt).append(objects.input))).bind('resize.inputConsole',function() |
---|
15 | {privateMethods.setObjectsWidth($this);});properties.inputMargins=objects.input.outerWidth(true)-objects.input.width();$this.data('objects',objects);} |
---|
16 | privateMethods.setOptions($this,opt);});},destroy:function() |
---|
17 | {return this.each(function() |
---|
18 | {var $this=$(this),objects=$this.data('objects');objects.input.unbind().remove();objects.container.unbind().remove();$this.unbind('.inputConsole').css({width:'',height:''});});},options:function(value) |
---|
19 | {return this.each(function() |
---|
20 | {privateMethods.setOptions($(this),value);});},disabled:function(value) |
---|
21 | {if(value!=null) |
---|
22 | {return this.each(function() |
---|
23 | {privateMethods.setDisabled($(this),value);});} |
---|
24 | else |
---|
25 | {var options=this.data('options');if(options) |
---|
26 | {return(options.disabled);} |
---|
27 | else |
---|
28 | {return('');}}},prompt:function(value) |
---|
29 | {if(value!=null) |
---|
30 | {return this.each(function() |
---|
31 | {privateMethods.setPrompt($(this),value);});} |
---|
32 | else |
---|
33 | {var options=this.data('options');if(options) |
---|
34 | {return(options.prompt);} |
---|
35 | else |
---|
36 | {return('');}}},historySize:function(value) |
---|
37 | {if(value!=null) |
---|
38 | {return this.each(function() |
---|
39 | {privateMethods.setHistorySize($(this),value);});} |
---|
40 | else |
---|
41 | {var options=this.data('options');if(options) |
---|
42 | {return(options.historySize);} |
---|
43 | else |
---|
44 | {return('');}}},historyHeight:function(value) |
---|
45 | {if(value!=null) |
---|
46 | {return this.each(function() |
---|
47 | {privateMethods.setHistoryHeight($(this),value);});} |
---|
48 | else |
---|
49 | {var options=this.data('options');if(options) |
---|
50 | {return(options.historyHeight);} |
---|
51 | else |
---|
52 | {return('');}}},value:function(value) |
---|
53 | {if(value!=null) |
---|
54 | {return this.each(function() |
---|
55 | {privateMethods.setValue($(this),value,true);});} |
---|
56 | else |
---|
57 | {var properties=this.data('properties');return(properties.value);}},history:function(value) |
---|
58 | {var objects=this.data('objects');if(value!=null) |
---|
59 | {return this.each(function() |
---|
60 | {if(value=='clear') |
---|
61 | {objects.historyList.html('');}});} |
---|
62 | else |
---|
63 | {var returned=[];objects.historyList.children().each(function(index,item) |
---|
64 | {returned.push($(item).text());});return(returned);}},isValid:function(value) |
---|
65 | {if(value!=null) |
---|
66 | {return this.each(function() |
---|
67 | {privateMethods.setIsValid($(this),value);});} |
---|
68 | else |
---|
69 | {var properties=this.data('properties');return(properties.isValid);}},change:function(value) |
---|
70 | {if(value!=null&&$.isFunction(value)) |
---|
71 | {return this.each(function() |
---|
72 | {privateMethods.setEventChange($(this),value);});} |
---|
73 | else |
---|
74 | {var options=this.data('options');if(options) |
---|
75 | {return(options.change);} |
---|
76 | else |
---|
77 | {return(null);}}},submit:function(value) |
---|
78 | {if(value!=null&&$.isFunction(value)) |
---|
79 | {return this.each(function() |
---|
80 | {privateMethods.setEventSubmit($(this),value);});} |
---|
81 | else |
---|
82 | {var options=this.data('options');if(options) |
---|
83 | {return(options.submit);} |
---|
84 | else |
---|
85 | {return(null);}}}};var privateMethods={setOptions:function(object,value) |
---|
86 | {var properties=object.data('properties'),options=object.data('options');if(!$.isPlainObject(value))return(false);properties.initialized=false;privateMethods.setHistoryHeight(object,(value.historyHeight!=null)?value.historyHeight:options.historyHeight);privateMethods.setHistorySize(object,(value.historySize!=null)?value.historySize:options.historySize);privateMethods.setPrompt(object,(value.prompt!=null)?value.prompt:options.prompt);privateMethods.setValue(object,(value.value!=null)?value.value:options.value,true);privateMethods.setDisabled(object,(value.disabled!=null)?value.disabled:options.disabled);privateMethods.setEventChange(object,(value.change!=null)?value.change:options.change);privateMethods.setEventSubmit(object,(value.submit!=null)?value.submit:options.submit);properties.initialized=true;},setPrompt:function(object,value) |
---|
87 | {var objects=object.data('objects'),options=object.data('options'),properties=object.data('properties');if(!properties.initialized||options.prompt!=value) |
---|
88 | {options.prompt=value;objects.prompt.html(options.prompt);privateMethods.setObjectsWidth(object);} |
---|
89 | return(options.prompt);},setHistorySize:function(object,value) |
---|
90 | {var options=object.data('options'),properties=object.data('properties');if(!properties.initialized||options.historySize!=value) |
---|
91 | {options.historySize=value;privateMethods.updateHistory(object,null);} |
---|
92 | return(options.historySize);},setHistoryHeight:function(object,value) |
---|
93 | {var objects=object.data('objects'),options=object.data('options'),properties=object.data('properties');if(!properties.initialized||options.historyHeight!=value) |
---|
94 | {options.historyHeight=value;objects.historyContainer.css({height:options.historyHeight+'px','margin-top':(-options.historyHeight)+'px'});} |
---|
95 | return(options.historyHeight);},setIsValid:function(object,value) |
---|
96 | {var objects=object.data('objects'),properties=object.data('properties');if(properties.isValid!=value) |
---|
97 | {properties.isValid=value;if(properties.isValid) |
---|
98 | {objects.container.removeClass('ui-error');objects.input.removeClass('ui-error');} |
---|
99 | else |
---|
100 | {objects.container.addClass('ui-error');objects.input.addClass('ui-error');}} |
---|
101 | return(properties.isValid);},setDisabled:function(object,value) |
---|
102 | {var options=object.data('options'),properties=object.data('properties');if((!properties.initialized||options.disabled!=value)&&(value==true||value==false)) |
---|
103 | {options.disabled=value;} |
---|
104 | return(options.disabled);},setValue:function(object,value,apply) |
---|
105 | {var options=object.data('options'),properties=object.data('properties'),objects=object.data('objects');properties.value=value;if(apply)objects.input.val(properties.value);if(options.change)object.trigger('inputConsoleChange',properties.value);return(true);},getFocus:function(object) |
---|
106 | {var objects=object.data('objects');objects.historyContainer.css('display','block');privateMethods.setObjectsWidth(object);},lostFocus:function(object) |
---|
107 | {var objects=object.data('objects');objects.historyContainer.css('display','none');},setEventChange:function(object,value) |
---|
108 | {var options=object.data('options');options.change=value;object.unbind('inputConsoleChange');if(value)object.bind('inputConsoleChange',options.change);return(options.change);},setEventSubmit:function(object,value) |
---|
109 | {var options=object.data('options');options.submit=value;object.unbind('inputConsoleSubmit');if(value)object.bind('inputConsoleSubmit',options.submit);return(options.submit);},keyUp:function(object,event) |
---|
110 | {var properties=object.data('properties'),options=object.data('options'),objects=object.data('objects');if(event.keyCode==13&&properties.isValid) |
---|
111 | {if(options.submit)object.trigger('inputConsoleSubmit',properties.value);privateMethods.updateHistory(object,properties.value);privateMethods.setValue(object,'',true);} |
---|
112 | else |
---|
113 | {privateMethods.setValue(object,objects.input.val(),false);}},updateHistory:function(object,item) |
---|
114 | {var options=object.data('options'),objects=object.data('objects');if(item!=''&&item!=null)objects.historyList.append($('<li/>',{html:item}));while(objects.historyList.children().length>options.historySize) |
---|
115 | {objects.historyList.children(':first').remove();} |
---|
116 | objects.historyContainer.scrollTop(objects.historyList.height());},setObjectsWidth:function(object) |
---|
117 | {var objects=object.data('objects') |
---|
118 | properties=object.data('properties');if(objects.inputContainer.width()>0) |
---|
119 | {objects.input.css('width',(objects.inputContainer.innerWidth()-objects.prompt.outerWidth(true)-properties.inputMargins)+'px');objects.historyContainer.css({width:objects.inputContainer.innerWidth()+'px','margin-left':((objects.historyContainer.width()-objects.historyContainer.outerWidth())/2)+'px'});}}};$.fn.inputConsole=function(method) |
---|
120 | {if(publicMethods[method]) |
---|
121 | {return publicMethods[method].apply(this,Array.prototype.slice.call(arguments,1));} |
---|
122 | else if(typeof method==='object'||!method) |
---|
123 | {return publicMethods.init.apply(this,arguments);} |
---|
124 | else |
---|
125 | {$.error('Method '+method+' does not exist on jQuery.inputConsole');}}})(jQuery); |
---|