






var vhm_jenc = function(o) {
  // regex from YUI
  var i,b,spc=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
  switch (typeof o) {
    case 'string':
      return '"' + o.replace(spc, function(c) {
        return '\\u'+('0000'+(+(c.charCodeAt(0))).toString(16)).slice(-4);
      }) + '"';
    case 'number':
    case 'boolean':
      return o;
    case 'array':
      b = [];
      for (i=0;i<o.length;i++)
        b.push(vhm_jenc(o[i]));
      return '[' + b.join(',') + ']';
    case 'object':
      b = [];
      for (i in o)
        b.push(i + ':' + vhm_jenc(o[i]));
      return '{' + b.join(',') + '}';
    default:
      return 'null';
  }
};

var vhm_embed = function(ws, height, width, elementId) {
  if (elementId) {
    if (elementId.indexOf("#") == 0) {
      elementId = elementId.substr(1);
    }

    var element = document.getElementById(elementId);
    if (element != null) {
      if (element.tagName.toLowerCase() == "iframe") {
        element.src = 'http://vhmengine.com/widgets/qa_skel?s=' + encodeURIComponent(vhm_jenc(ws));
      }
      else {
        element.innerHTML =
          '<ifr'+'ame id="vhm_qaframe0" allowTransparency="true" frameborder="0" vspace="0" hspace="0" marginwidth="0" marginheight="0" ' +
          'width="' + width + '"  scrolling="no"  height="' + height +
          '" src="http://vhmengine.com/widgets/qa_skel?s=' + encodeURIComponent(vhm_jenc(ws)) + '" ></ifr'+'ame>';
      }
    }
  }
  else {
    document.write(
      '<ifr'+'ame id="vhm_qaframe0" allowTransparency="true" frameborder="0" vspace="0" hspace="0" marginwidth="0" marginheight="0" ' +
      'width="' + width + '"  scrolling="no"  height="' + height +
      '" src="http://vhmengine.com/widgets/qa_skel?s=' + encodeURIComponent(vhm_jenc(ws)) + '" ></ifr'+'ame>');
  }
};

(function(t) {

  var ws = vhm_widget_settings,
      args = document.location.search.substring(1).replace(/\+/g, ' ').split('&'),
      dec = decodeURIComponent,
      i,p,n,v;

  // Pass vhm_ parameters to widgetSettings
  for (i = 0; i < args.length; i++) {
    p = args[i].split('=');
    n = dec(p[0]);
    if (n.indexOf('vhm_') == 0) {
      n = n.substring(4);
      v = (p.length==2) ? dec(p[1]) : n;
      for (wsn in ws) {
        // Coalesce existing values, regardless of case
        if (wsn.toLowerCase() == n.toLowerCase()) {
          n = wsn;
          break
        }
      }
      ws[n] = v;
    }
  }

  var width = ws.width,
      height = ws.height;
  delete (ws.width);
  delete (ws.height);

  if (width < 300) {
    ws.sizeClass = 1; //vhm.size_t.micro;
  }
  else if (ws.miniMode || ws.pollMode || ws.pollmode || width < 350){
    ws.sizeClass = 2; //vhm.size_t.mini;
  }
  else {
    ws.sizeClass = 3; //vhm.size_t.std;
  }
  delete (ws.miniMode);
  delete (ws.pollMode);
  delete (ws.pollmode);

  //if (height < 300 && !ws.xForceSize) height = 300;
  //if (width < 300 && !ws.xForceSize) width = 300;
  delete (ws.xForceSize);

  var elementId = ws.elementId;
  var delayLoad = ws.delayLoad || false;
  delete (ws.elementId);
  delete (ws.delayLoad);

  // delayLoad can't really work without an elementId to load into
  if (delayLoad && elementId) {
    window.addEventListener("load", vhm_embed(ws, height, width, elementId), false);
  }
  else {
    vhm_embed(ws, height, width, elementId)
  }
  
})(this);

