FeedOnFeeds/css_packed.js

1 line
1.8 KiB
JavaScript

var CSS=new Class({local:{self:'CSS',limited:['dpi','border-radius'],_rule:''},options:{rules:{}},xhtml:{_style:null},initialize:function(a){this.local=$merge(this.local,this.options,a,this.xhtml)},destroy:function(){if(this.local._style)this.local._style.destroy()},refresh:function(){var c='';Hash.each(this.local.rules,function(a,b){this.local._rule='';Hash.each(a,this._glue,this);c+=(this.local._rule==''?'':b+'\n{\n'+this.local._rule+'}\n')},this);this.destroy();this.local._style=new Element('style').set('type','text/css').inject(document.head);switch(Browser.Engine.name){case'trident':this.local._style.styleSheet.cssText=c;break;default:this.local._style.set('text',c);break}return this},_glue:function(a,b){if(this[Browser.Engine.name+'_'+b]){var c;if(c=this[Browser.Engine.name+'_'+b](a,b)){this.local._rule+='\t'+c[0]+':'+c[1]+';\n'}}else if(!this.local.limited.contains(b)){this.local._rule+='\t'+b+':'+a+';\n'}},add_prop:function(a,b,c){var d={};d[a]={};d[a][b]=c;return this.add_rules(d)},add_rule:function(a,b){var c={};c[a]=b;return this.add_rules(c)},add_rules:function(a){this.local.rules=$merge(this.local.rules,a);return this},remove_prop:function(a,b){delete this.local.rules[a][b];return this},remove_rule:function(a){delete this.local.rules[a];return this},remove_rules:function(a){if(a){a.each(this.remove_rule,this)}else{this.local.rules={}}return this},check_rule:function(a){return $defined(this.local.rules[a])}});CSS.implement({'trident_opacity':function(a,b){return['filter','alpha(opacity='+(a*100)+')']},'trident_dpi':function(a,b){if($defined(window.screen.deviceXDPI)){return['font-size',((96/window.screen.deviceXDPI)*a).round()+'%']}else{return['font-size',a+'%']}},'gecko_border-radius':function(a,b){return['-moz-'+b,a]},'webkit_border-radius':function(a,b){return['-webkit-'+b,a]}});