function embed_tag(pWidth, pHeight, pClickThroughURL, pPdexQuality, pPdexBgcolor, pPdexSalign, pPdexMenu, pPdexLoop, pPdexWmode, pMinFlashVersion, pServeFlashFile, pMacroEncodedClkCmd, pClick, pJSEncodedClickThroughURL, pServeBackupGif, pFlashVersion) {
    var clickTag = pClickThroughURL;

    if (clickTag) {
        clickTag = escape(clickTag);
    }

    if (pServeFlashFile.indexOf('?') == -1) {
        pServeFlashFile += "?";
    } else {
        pServeFlashFile += "&"
    }

    if (pFlashVersion >= pMinFlashVersion) {
       var doc = '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
       doc += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" ';
       doc += 'ID=FLASH_AD WIDTH="' + pWidth + '" HEIGHT="' + pHeight + '"> ';
       doc += '<PARAM NAME="movie" VALUE="' + pServeFlashFile + 'clicktag=' + pMacroEncodedClkCmd + clickTag + '"> ';
       doc += '<PARAM NAME="quality" VALUE="' + pPdexQuality + '"><PARAM NAME="bgcolor" VALUE="' + pPdexBgcolor + '">';
       doc += '<PARAM NAME="salign" VALUE="' + pPdexSalign + '" ><PARAM NAME="menu" VALUE="' + pPdexMenu + '">';
       doc += '<PARAM NAME="loop" VALUE="' + pPdexLoop + '"><PARAM NAME="wmode" VALUE="' + pPdexWmode + '">';
       doc += '<EMBED src="' + pServeFlashFile + 'clicktag=' + pMacroEncodedClkCmd + clickTag + '" ';
       doc += 'swLiveConnect="FALSE" WIDTH="' + pWidth + '" HEIGHT="' + pHeight + '" ';
       doc += 'quality="' + pPdexQuality + '" bgcolor="' + pPdexBgcolor + '" salign="' + pPdexSalign + '" ';
       doc += 'menu="' + pPdexMenu + '" loop="' + pPdexLoop + '" wmode="' + pPdexWmode + '" ';
       doc += 'TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">';
       doc += '</EMBED></OBJECT>';
       document.write(doc);
    } else if (!(navigator.appName && navigator.appName.indexOf("Netscape") >= 0 && navigator.appVersion.indexOf("2.") >= 0)) {
        document.write('<A target="_blank" href="' + pClick + pJSEncodedClickThroughURL + '"><IMG WIDTH="' + pWidth + '" HEIGHT="' + pHeight + '" src="' + pServeBackupGif + '" border="0"></A>');
    }
}

function isDefined(property) {
    return (typeof property != 'undefined');
}

var flashVersion = 0;

function getFlashVersion() {
    var latestFlashVersion = 9;
    var flashVersion_DONTKNOW = -1;
    var agent = navigator.userAgent.toLowerCase();

    // NS3 needs flashVersion to be a local variable
    if (agent.indexOf("mozilla/3") != -1 && agent.indexOf("msie") == -1) {
        flashVersion = 0;
    }

    // NS3+, Opera3+, IE5+ Mac (support plugin array):  check for Flash plugin in plugin array
    if (navigator.plugins != null && navigator.plugins.length > 0) {
        var flashPlugin = navigator.plugins['Shockwave Flash'];
        if (typeof flashPlugin == 'object') {
            for (var i = latestFlashVersion; i >= 3; i--) {
                if (flashPlugin.description.indexOf(i + '.') != -1) {
                    flashVersion = i;
                    break;
                }
            }
        }
    // IE4+ Win32:  attempt to create an ActiveX object using VBScript
    } else if (agent.indexOf("msie") != -1 && parseInt(navigator.appVersion) >= 4 && agent.indexOf("win") != -1 && agent.indexOf("16bit") == -1) {
        var doc = '<scr' + 'ipt language="VBScript"\> \n';
        doc += 'On Error Resume Next \n';
        doc += 'Dim obFlash \n';
        doc += 'For var_xp1 = ' + latestFlashVersion + ' To 3 Step -1 \n';
        doc += '   Set obFlash = CreateObject("ShockwaveFlash.ShockwaveFlash." & var_xp1) \n';
        doc += '   If IsObject(obFlash) Then \n';
        doc += '      flashVersion = var_xp1 \n';
        doc += '      Exit For \n';
        doc += '   End If \n';
        doc += 'Next \n';
        doc += '</scr' + 'ipt\> \n';
        document.write(doc);
    } else if (agent.indexOf("webtv/2.5") != -1) { // WebTV 2.5 supports flash 3
        flashVersion = 3;
    } else if (agent.indexOf("webtv") != -1) { // older WebTV supports flash 2
        flashVersion = 2;
    } else { // Can't detect in all other cases
        flashVersion = flashVersion_DONTKNOW;
    }

    return flashVersion;
}
