function ppExt(src, ext){
if (src.indexOf('?') != -1)
  return src.replace(/\?/, ext+'?'); 
else
  return src + ext;
}
function ppObj(objAtt, params, embdAtt){ 
var str = '<object ';
for (var i in objAtt)
  str += i + '="' + objAtt[i] + '" ';
  str += '>';
for (var i in params)
  str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
for (var i in embdAtt)
  str += i + '="' + embdAtt[i] + '" ';
  str += ' ></embed></object>';
document.write(str);
}
function ppRun(){
var ret = 
  ppArgs ( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" , "application/x-shockwave-flash" );
  ppObj(ret.objAtt, ret.params, ret.embdAtt);
}
function AC_SW_RunContent(){
var ret = 
  ppArgs ( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000" , null );
  ppObj(ret.objAtt, ret.params, ret.embdAtt);
}
function ppArgs(args, ext, srcParamName, classid, mimeType){
var ret = new Object();
ret.embdAtt = new Object();
ret.params = new Object();
ret.objAtt = new Object();
for (var i=0; i < args.length; i=i+2){
  var currArg = args[i].toLowerCase();    
  switch (currArg){	
    case "classid":
      break;
    case "pluginspage":
      ret.embdAtt[args[i]] = args[i+1];
      break;
    case "src":
    case "movie":	
      args[i+1] = ppExt(args[i+1], ext);
      ret.embdAtt["src"] = args[i+1];
      ret.params[srcParamName] = args[i+1];
      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.objAtt[args[i]] = args[i+1];
      break;
    case "width":
    case "height":
    case "align":
    case "vspace": 
    case "hspace":
    case "class":
    case "title":
    case "accesskey":
    case "name":
    case "id":
    case "tabindex":
      ret.embdAtt[args[i]] = ret.objAtt[args[i]] = args[i+1];
      break;
    default:
      ret.embdAtt[args[i]] = ret.params[args[i]] = args[i+1];
  }
}
ret.objAtt["classid"] = classid;
if (mimeType) ret.embdAtt["type"] = mimeType;
  return ret;
}
function ppAxRun(){
var ret = ppAxArgs(arguments);
ppObj(ret.objAtt, ret.params, ret.embdAtt);
}
function ppAxArgs(args){
var ret = new Object();
ret.embdAtt = new Object();
ret.params = new Object();
ret.objAtt = new Object();
for (var i=0; i < args.length; i=i+2){
  var currArg = args[i].toLowerCase();    
  switch (currArg){	
    case "pluginspage":
    case "type":
    case "src":
      ret.embdAtt[args[i]] = args[i+1];
      break;
    case "data":
    case "codebase":
    case "classid":
    case "id":
    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":
      ret.objAtt[args[i]] = args[i+1];
      break;
    case "width":
    case "height":
    case "align":
    case "vspace": 
    case "hspace":
    case "class":
    case "title":
    case "accesskey":
    case "name":
    case "tabindex":
      ret.embdAtt[args[i]] = ret.objAtt[args[i]] = args[i+1];
      break;
    default:
      ret.embdAtt[args[i]] = ret.params[args[i]] = args[i+1];
  }
}
return ret;
}