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={width:0,height:0,disabled:false,fg:{color:'#ffffff',opacity:1},bg:{color:'#000000',opacity:1},selected:'fg',mode:2,boxSize:0.6,change:null,click:null};$this.data('options',options);if(!properties) |
---|
6 | {$this.data('properties',{initialized:false});properties=$this.data('properties');} |
---|
7 | if(!objects) |
---|
8 | {objects={container:$('<div/>',{'class':'ui-inputColorsFB',css:{width:'100%',height:'100%'}}),fg:$('<div/>',{'class':'ui-inputColorsFB-fg'}).bind('click.inputColorsFB',function(event) |
---|
9 | {if(options.mode==2)privateMethods.setSelected($this,'fg');if(options.click)$this.trigger('inputColorsFBClick',{target:'fg',color:options.fg});}),bg:$('<div/>',{'class':'ui-inputColorsFB-bg'}).bind('click.inputColorsFB',function(event) |
---|
10 | {if(options.mode==2)privateMethods.setSelected($this,'bg');if(options.click)$this.trigger('inputColorsFBClick',{target:'bg',color:options.bg});}),fgopacity:$('<div/>',{'class':'ui-inputColorsFB-fgopacity'}),bgopacity:$('<div/>',{'class':'ui-inputColorsFB-bgopacity'})};$this.html('').append(objects.container.append(objects.fgopacity.append(objects.fg)).append(objects.bgopacity.append(objects.bg)));$this.data('objects',objects);} |
---|
11 | privateMethods.setOptions($this,opt);});},destroy:function() |
---|
12 | {return this.each(function() |
---|
13 | {var $this=$(this),objects=$this.data('objects');objects.dot.remove();objects.container.unbind().remove();$this.unbind('.inputColorsFB').css({width:'',height:''});});},options:function(value) |
---|
14 | {return(this.each(function() |
---|
15 | {privateMethods.setOptions($(this),value);}));},disabled:function(value) |
---|
16 | {if(value!=null) |
---|
17 | {return(this.each(function() |
---|
18 | {privateMethods.setDisabled($(this),value);}));} |
---|
19 | else |
---|
20 | {var options=this.data('options');if(options) |
---|
21 | {return(options.disabled);} |
---|
22 | else |
---|
23 | {return('');}}},mode:function(value) |
---|
24 | {if(value!=null) |
---|
25 | {return(this.each(function() |
---|
26 | {privateMethods.setMode($(this),value,true);}));} |
---|
27 | else |
---|
28 | {var options=this.data('options');return(options.mode);}},boxSize:function(value) |
---|
29 | {if(value!=null) |
---|
30 | {return(this.each(function() |
---|
31 | {privateMethods.setBoxSize($(this),value,true);}));} |
---|
32 | else |
---|
33 | {var options=this.data('options');return(options.boxSize);}},width:function(value) |
---|
34 | {if(value!=null) |
---|
35 | {return(this.each(function() |
---|
36 | {privateMethods.setWidth($(this),value,true);}));} |
---|
37 | else |
---|
38 | {var options=this.data('options');return(options.width);}},height:function(value) |
---|
39 | {if(value!=null) |
---|
40 | {return(this.each(function() |
---|
41 | {privateMethods.setHeight($(this),value,true);}));} |
---|
42 | else |
---|
43 | {var options=this.data('options');return(options.height);}},fg:function(value) |
---|
44 | {if(value!=null) |
---|
45 | {return(this.each(function() |
---|
46 | {privateMethods.setFG($(this),value,true);}));} |
---|
47 | else |
---|
48 | {var options=this.data('options');return(options.fg);}},bg:function(value) |
---|
49 | {if(value!=null) |
---|
50 | {return(this.each(function() |
---|
51 | {privateMethods.setBG($(this),value,true);}));} |
---|
52 | else |
---|
53 | {var options=this.data('options');return(options.bg);}},selected:function(value) |
---|
54 | {if(value!=null) |
---|
55 | {return(this.each(function() |
---|
56 | {privateMethods.setSelected($(this),value);}));} |
---|
57 | else |
---|
58 | {var options=this.data('options');return(options.selected);}},isValid:function(value) |
---|
59 | {if(value!=null) |
---|
60 | {return(this.each(function() |
---|
61 | {privateMethods.setIsValid($(this),value);}));} |
---|
62 | else |
---|
63 | {var properties=this.data('properties');return(properties.isValid);}},change:function(value) |
---|
64 | {if(value!=null&&$.isFunction(value)) |
---|
65 | {return(this.each(function() |
---|
66 | {privateMethods.setEventChange($(this),value);}));} |
---|
67 | else |
---|
68 | {var options=this.data('options');if(options) |
---|
69 | {return(options.change);} |
---|
70 | else |
---|
71 | {return(null);}}},click:function(value) |
---|
72 | {if(value!=null&&$.isFunction(value)) |
---|
73 | {return(this.each(function() |
---|
74 | {privateMethods.setEventClick($(this),value);}));} |
---|
75 | else |
---|
76 | {var options=this.data('options');if(options) |
---|
77 | {return(options.click);} |
---|
78 | else |
---|
79 | {return(null);}}}};var privateMethods={setOptions:function(object,value) |
---|
80 | {var properties=object.data('properties'),options=object.data('options');if(!$.isPlainObject(value))return(false);properties.initialized=false;privateMethods.setMode(object,(value.mode!=null)?value.mode:options.mode);privateMethods.setBoxSize(object,(value.boxSize!=null)?value.boxSize:options.boxSize);privateMethods.setWidth(object,(value.width!=null)?value.width:options.width);privateMethods.setHeight(object,(value.height!=null)?value.height:options.height);privateMethods.setFG(object,(value.fg!=null)?value.fg:options.fg);privateMethods.setBG(object,(value.bg!=null)?value.bg:options.bg);privateMethods.setSelected(object,(value.selected!=null)?value.selected:options.selected,true);privateMethods.setEventChange(object,(value.change!=null)?value.change:options.change);privateMethods.setEventClick(object,(value.click!=null)?value.click:options.click);properties.initialized=true;},setIsValid:function(object,value) |
---|
81 | {var objects=object.data('objects'),properties=object.data('properties');return(properties.isValid);},setMode:function(object,value) |
---|
82 | {var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.mode!=value)&&(value==1||value==2)) |
---|
83 | {options.mode=value;privateMethods.setSelected(object,'fg');if(options.mode==1) |
---|
84 | {objects.bg.css('display','none');objects.bgopacity.css('display','none');objects.fgopacity.removeClass('ui-inputColorsFB-selected');if(options.click==null)objects.fgopacity.removeClass('ui-inputColorsFB-clickable');} |
---|
85 | else |
---|
86 | {objects.bg.css('display','block');objects.bgopacity.css('display','block').addClass('ui-inputColorsFB-clickable');objects.fgopacity.addClass('ui-inputColorsFB-clickable');} |
---|
87 | privateMethods.updateSizes(object);} |
---|
88 | return(options.mode);},setBoxSize:function(object,value) |
---|
89 | {var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.boxSize!=value)&&(value>0&&value<=1)) |
---|
90 | {options.boxSize=value;privateMethods.updateSizes(object);} |
---|
91 | return(options.boxSize);},setWidth:function(object,value) |
---|
92 | {var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.width!=value)&&value>0) |
---|
93 | {options.width=value;privateMethods.updateSizes(object);} |
---|
94 | return(options.width);},setHeight:function(object,value) |
---|
95 | {var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.height!=value)&&value>0) |
---|
96 | {options.height=value;privateMethods.updateSizes(object);} |
---|
97 | return(options.height);},setDisabled:function(object,value) |
---|
98 | {var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.disabled!=value)&&(value==true||value==false)) |
---|
99 | {options.disabled=value;objects.input.attr('disabled',options.disabled);} |
---|
100 | return(options.disabled);},setSelected:function(object,value) |
---|
101 | {var options=object.data('options'),objects=object.data('objects'),properties=object.data('properties');if((!properties.initialized||options.selected!=value)&&(value=='fg'||value=='bg')&&options.mode==2) |
---|
102 | {options.selected=value;if(options.selected=='fg') |
---|
103 | {objects.fgopacity.addClass('ui-inputColorsFB-selected');objects.bgopacity.removeClass('ui-inputColorsFB-selected');} |
---|
104 | else |
---|
105 | {objects.fgopacity.removeClass('ui-inputColorsFB-selected');objects.bgopacity.addClass('ui-inputColorsFB-selected');} |
---|
106 | if(options.change)object.trigger('inputColorsFBChange',options.selected);} |
---|
107 | return(options.selected);},setFG:function(object,value) |
---|
108 | {var options=object.data('options'),objects=object.data('objects');if(value.color==null||value.opacity==null) |
---|
109 | {return(false);} |
---|
110 | options.fg.color=value.color;options.fg.opacity=value.opacity;objects.fg.css({'background':options.fg.color,'opacity':options.fg.opacity});return(true);},setBG:function(object,value,apply) |
---|
111 | {var options=object.data('options'),objects=object.data('objects');if(value.color==null||value.opacity==null) |
---|
112 | {return(false);} |
---|
113 | options.bg.color=value.color;options.bg.opacity=value.opacity;objects.bg.css({'background':options.bg.color,'opacity':options.bg.opacity});return(true);},setEventChange:function(object,value) |
---|
114 | {var options=object.data('options');options.change=value;object.unbind('inputColorsFBChange');if(value)object.bind('inputColorsFBChange',options.change);return(options.change);},setEventClick:function(object,value) |
---|
115 | {var options=object.data('options'),objects=object.data('objects');options.click=value;object.unbind('inputColorsFBClick');if(value) |
---|
116 | {object.bind('inputColorsFBClick',options.click);objects.fgopacity.addClass('ui-inputColorsFB-clickable');} |
---|
117 | else if(options.mode==1) |
---|
118 | {objects.fgopacity.removeClass('ui-inputColorsFB-clickable');} |
---|
119 | return(options.click);},updateSizes:function(object) |
---|
120 | {var options=object.data('options'),objects=object.data('objects'),tmpSize=1;if(options.mode==2)tmpSize=options.boxSize;objects.container.css({'width':options.width+'px','height':options.height+'px'});objects.fgopacity.css({'width':(options.width*tmpSize)+'px','height':(options.height*tmpSize)+'px'});if(options.mode==2) |
---|
121 | {objects.bgopacity.css({'width':(options.width*options.boxSize)+'px','height':(options.height*options.boxSize)+'px','margin-left':(options.width*(1-options.boxSize))+'px','margin-top':(options.height*(1-options.boxSize))+'px'});}}};$.fn.inputColorsFB=function(method) |
---|
122 | {if(publicMethods[method]) |
---|
123 | {return publicMethods[method].apply(this,Array.prototype.slice.call(arguments,1));} |
---|
124 | else if(typeof method==='object'||!method) |
---|
125 | {return publicMethods.init.apply(this,arguments);} |
---|
126 | else |
---|
127 | {$.error('Method '+method+' does not exist on jQuery.inputColorsFB');}}})(jQuery); |
---|