var widgets = (function(){
  
  var rootUrl = 'http://widgets.elifantiev.ru/widgets/';
  var cssInserted = false;
  
  function insertCss() {
    var wdgtCss = document.createElement('link');
    var head = document.getElementsByTagName('head')[0];
    wdgtCss.rel = 'stylesheet';
    wdgtCss.type = 'text/css';
    wdgtCss.href = 'http://widgets.elifantiev.ru/include/widgets.css';
    head.insertBefore(wdgtCss, head.lastChild);
    cssInserted = true;
  }
  
  function addScript(src) {
    var elem = document.createElement('script');
    elem.charset = 'UTF-8';
    elem.src = src;
    document.getElementsByTagName('head')[0].appendChild(elem);
  }
  
  return {
    
    write: function(code, id) {
      var container = document.getElementById(id);
      if(container)
        container.innerHTML = code;
    },
    
    render: function(name, params) {
      
      if(!cssInserted)
        insertCss();
      
      var id = 'wdgt'+Math.random();
      var width = (params.width || '300px').replace(/[^0-9pxcme%\.]/,'');
      var style = 'style="width: '+ width +';"';
      var script = rootUrl + name + '/widget.php?mode=js&id=' + id + '&';        
      for(var parName in params)
        script += parName + '=' + eval('params.' + parName) + '&';
      document.write('<div id="'+id+'"'+style+'></div>');
      addScript(script);
    }  
  };
})();
