fontfor2={

getText: 
  function (selector,font){
    var ret=''
      if(typeof selector == 'string' ){
        var elements=Sizzle(selector)
      }else if(typeof selector == 'object' ){
        var elements=[ selector ]
      }
    var length;
    for(var i=0, length=elements.length; i<length; i++){
      var childrens=elements[i].childNodes
        for(var j=0, childrens_length=childrens.length; j<childrens_length; j++){
          if ( childrens[j].nodeType != 8 ){
            ret += childrens[j].nodeType != 1 ?
              childrens[j].nodeValue :
              this.getText(childrens[j])
          }
        }
    }
    return ret;
  },

uniqueString: 
  function( str ) {
    chars=str.replace(/\n/,'').split('')
      var uniq_str = '', have = {};
    for ( var i=0, length = chars.length; i < length; i++ ) {
      if ( !have[ chars[i] ] ) {
        have[ chars[i] ] = true;
        uniq_str+=chars[i]
      }
    }
    return uniq_str;
  },

init: 
  function(fonts){
    var head = document.getElementsByTagName("head")[0];         
    css='';
    scripts=Sizzle('script')
    var length=0;
    for(var i=0, length=scripts.length; i<length; i++){
      if(scripts[i].src.match(/\/fontfor2.sizzle.js/)){
        var host=scripts[i].src.replace(/\/fontfor2.sizzle.js/,'')
      }
    }

    for(var font in fonts){
       var selectors=fonts[font].split(',');
        var str='';
        for(var i=0,length=selectors.length; i<length; i++){
          var selector=selectors[i].replace(/^\s+|\s+$/g,"");
          css+=selector+"{font-family:'"+font+"Subset'}\n"
          str+=this.getText(selector, font)
        }
      var cssNode = document.createElement('link');
      cssNode.type = 'text/css';
      cssNode.rel = 'stylesheet';
      cssNode.href = host+'/'+font+'/'+encodeURIComponent(this.uniqueString( str ));
      cssNode.media = 'screen';
      head.appendChild(cssNode);
    }
      var style = document.createElement('style');
      style.setAttribute("type", "text/css");
      if (style.styleSheet) {   // IE
            style.styleSheet.cssText = css;
      } else {                // the world
            var text = document.createTextNode(css);
                style.appendChild(text);
      }
      head.appendChild(style);

  }

}
