/**
 *  @extern boolean window.hasFlash   defined in default.js
 */

if (!document.all) {
  try {
    for (var i = 0; i < navigator.plugins.length; i++) {
      if (navigator.plugins[i].name == "Shockwave Flash") {
        window.hasFlash = true;
        break;
      }
    }
  }
  catch (e) {}
}

var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ?
  true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

/**
 *  Entry function for Flash disply
 *
 *  @param  Object args   name:value pairs for params and object/embed attrs
 *  @type void
 */
function AC_FL_RunContent(args)
{
  var ret = AC_GetArgs(args, ".swf", "movie",
    "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",
    "application/x-shockwave-flash");

  AC_GenerateObj(ret.objAttrs, ret.params, ret.embedAttrs, ret.altContent);
}

/**
 *  Creates an object of objects: object and embed element attributes, param
 *  info, and alternate content.
 *
 *  @param  Object args
 *  @param  String ext            file extension
 *  @param  String srcParamName   name attrib of param specifying the movie
 *  @param  String classid
 *  @param  String mimeType
 *  @type   Object
 */
function AC_GetArgs(args, ext, srcParamName, classid, mimeType)
{
  var ret = new Object();
  ret.objAttrs = new Object();
  ret.params = new Object();
  ret.embedAttrs = new Object();
  ret.altContent = "";

  for (name in args) {
    switch (name.toLowerCase()) {
      case "classid":
        break;

      case "altcontent":
        ret.altContent = args[name];
        break;

      case "pluginspage":
        ret.embedAttrs[name] = args[name];
        break;

      case "src":
      case "movie":
        args[name] = AC_AddExtension(args[name], ext);
        ret.embedAttrs["src"] = args[name];
        ret.params[srcParamName] = args[name];
        break;

      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[name] = args[name];
        break;

      case "width":
      case "height":
      case "align":
      case "vspace":
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
      case "id":
        ret.embedAttrs[name] = ret.objAttrs[name] = args[name];
        break;

      default:
        ret.embedAttrs[name] = ret.params[name] = args[name];
    }
  }
  ret.objAttrs["classid"] = classid;

  if (mimeType) {
    ret.embedAttrs["type"] = mimeType;
  }
  return ret;
}

/**
 *  Adds the extension to the file name taking into account optional '?'.
 *
 *  @param  String src  filename (w/o extension)
 *  @param  String ext  extension
 *  @type   String
 */
function AC_AddExtension(src, ext)
{
  if (src.indexOf("?") != -1) {
    return src.replace(/\?/, ext + "?");
  }
  else {
    return src + ext;
  }
}

/**
 *  Writes the object and embed elements to the document.
 *
 *  @param  Object objAttrs
 *  @param  Object params
 *  @param  Object embedAttrs
 *  @param  String altContent
 *  @type   void
 */
function AC_GenerateObj(objAttrs, params, embedAttrs, altContent)
{
  var str = '';
  if (isIE && isWin && !isOpera) {
    str += "<object ";
    for (var attr in objAttrs) {
      str += attr + '="' + objAttrs[attr] + '" ';
    }
    str += ">";
    for (var name in params) {
      str += '<param name="' + name + '" value="' + params[name] + '" /> ';
    }
    str += altContent + "</object>";
  }
  else {
    str += "<embed ";

    for (var attr in embedAttrs) {
      str += attr + '="' + embedAttrs[attr] + '" ';
    }

    str += ">";

    if (altContent) {
      str += "<noembed>" + altContent + "</noembed>";
    }

    str += "</embed>";
  }
  document.write(str);
}

var noFlashCass =
'<img src="graphics/noflash_cassandra.jpg" width="999" height="368"' +
'  alt="Cassandra. Insulin newbie. Dessert lover" usemap="#getflmap" />' +
'<map id="getflmap" name="getflmap">' +
'  <area shape="rect" coords="56, 247, 282, 312"' +
'    href="http://www.adobe.com/products/flashplayer/"' +
'    alt="Download Adobe Flash Player" />' +
'</map>';

var noFlashChris =
'<img src="graphics/noflash_chris.jpg" width="999" height="368"' +
'  alt="Chris. Newly diagnosed. Motivated. Father" usemap="#getflmap" />' +
'<map id="getflmap" name="getflmap">' +
'  <area shape="rect" coords="31, 294, 252, 359"' +
'    href="http://www.adobe.com/products/flashplayer/"' +
'    alt="Download Adobe Flash Player" />' +
'</map>';

var noFlashLiving =
'<img src="../graphics/noflash_living.jpg" width="999" height="523"' +
'  alt="YOU are to be applauded, congratulated, praised, cheered, commended, extolled, and admired."' +
'  usemap="#getflmap" />' +
'<map id="getflmap" name="getflmap">' +
'  <area shape="rect" coords="312, 442, 729, 485"' +
'    href="http://www.adobe.com/products/flashplayer/"' +
'    alt="This part of the website requires adobe flash player. Click here to download Adobe Flash Player." />' +
'</map>';

var noFlashMaddy =
'<img src="graphics/noflash_maddy.jpg" width="999" height="368"' +
'  alt="Maddy. Pumper. Independent. Fun-loving" usemap="#getflmap" />' +
'<map id="getflmap" name="getflmap">' +
'  <area shape="rect" coords="128, 271, 351, 336"' +
'    href="http://www.adobe.com/products/flashplayer/"' +
'    alt="Download Adobe Flash Player" />' +
'</map>';

var noFlashSharing =
'<img src="../graphics/noflash_sharing.jpg" width="999" height="712"' +
'  alt="Word in Your Hand Project : Building a diabetes community."' +
'  usemap="#getflmap" />' +
'<map id="getflmap" name="getflmap">' +
'  <area shape="rect" coords="41, 386, 415, 425"' +
'    href="http://www.adobe.com/products/flashplayer/"' +
'    alt="This part of the website requires adobe flash player. Click here to download Adobe Flash Player." />' +
'  <area shape="rect" coords="864, 169, 973, 183"' +
'    href="outbound.html" target="_blank"' +
'    alt="This part of the website requires adobe flash player. Click here to download Adobe Flash Player." />' +
'  <area shape="rect" coords="794, 403, 902, 416"' +
'    href="outbound.html" target="_blank"' +
'    alt="This part of the website requires adobe flash player. Click here to download Adobe Flash Player." />' +
'</map>';

