fun=function(hash, clearFirst, g){
                    if(hash.$gradient && hash.$gradient.stops && hash.$gradient.stops.length){
                        delete hash['background-image'];
                        delete hash['background'];
                    }
                    var rst=clearFirst?['background-image:none']:[];
                    
                    var newO=function(){
                        var arr = this.arr=[];
                        Object.defineProperty(this, 'backgroundImage', {
                            set:function(v){
                               arr.push('background-image: ' + v);
                            }
                        });                        
                    };
                    
                    xui.each(hash,function(v,k){
                        switch(k){
                            case 'box-shadow':
                                rst.push("-moz-box-shadow: " + v);
                                rst.push("-webkit-box-shadow: " + v);
                                rst.push("box-shadow: " + v);
                                break;
                            case '$gradient':
                                if(v && v.stops&& v.stops.length){
                                    rst.push("filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='"+v.stops[0].clr+"', endColorstr='"+(v.stops[1]||v.stops[0]).clr+"')");
                                    rst.push("-ms-filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='"+v.stops[0].clr+"', endColorstr='"+(v.stops[1]||v.stops[0]).clr+"')");
                                    
                                    var fakeStyle=new newO(),
                                        fakeNode = {
                                            nodeType:1,
                                            style:fakeStyle
                                        };
                                    xui.Dom.$setGradients(fakeNode, v, {
                                        gek:1,
                                        ver:100,
                                        cssTag1:'-moz-'
                                    });
                                    xui.Dom.$setGradients(fakeNode, v, {
                                        opr:1,
                                        ver:100,
                                        cssTag1:'-o-'
                                    });
                                    xui.Dom.$setGradients(fakeNode, v, {
                                        isWebKit:1,
                                        isChrome:1,
                                        isSafari:1,
                                        ver:100,
                                        cssTag1:'-webkit-'
                                    });
                                    xui.arr.removeDuplicate(fakeStyle.arr);
                                    if(fakeStyle.arr.length){
                                        xui.arr.insertAny(rst,fakeStyle.arr);
                                        if(g)g.length = fakeStyle.arr.length;
                                    }
                                } 
                                break;
                          default :
                              rst.push(k+": "+v);
                        }
                    });
                    return '    ' + rst.join(';\n') +";";  
                }
important => the last one: this theme\'s name