var rankers = {
    experience_badge_widget: function(target, widget_id, href, width, height) {
    this.insert_widget(target, widget_id, width, height);
  },
    experience_rating_widget: function(target, widget_id, href, width, height) {
    this.insert_widget(target, widget_id, width, height);
  },
    industry_experience_widget: function(target, widget_id, href, width, height) {
    this.insert_widget(target, widget_id, width, height);
  },
    industry_review_widget: function(target, widget_id, href, width, height) {
    this.insert_widget(target, widget_id, width, height);
  },
    industry_tips_widget: function(target, widget_id, href, width, height) {
    this.insert_widget(target, widget_id, width, height);
  },
    insert_widget: function(target, widget_id, width, height) {
    // width and height are currently ignored, instead resize the widget by editing it on rankers.co.nz
    // target can be changed but will take some time to update due to caching on the server.
    if (typeof target == "string") { 
      var target_el = document.getElementById(target);
      if (target_el != null && widget_id != null) {
        var url = "http://www.rankers.co.nz/widgets/frame/" + widget_id + ".js?target=" + encodeURIComponent(target);
        rankers.require(url);
      }
    }
  },
  referrer: function(){ return window.location.href },
  require: function(url) { // Load an external js dependency
    try {
      // inserting via DOM fails in Safari 2.0, so brute force approach
      document.write('<script type="text/javascript" src="'+url+'"><\/script>');
    } catch(e) {
      // for xhtml+xml served content, fall back to DOM methods
      var script = document.createElement('script');
      script.type = 'text/javascript';
      script.src = url;
      document.getElementsByTagName('head')[0].appendChild(script);
    }
  }
};

