/*
MgameJP Flash Avatar Viewer JS
2008.04
*/
// AC Control v1.7
var AC_FLCTL = function() { // by MgameJP
this.clsid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
this.codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0";
this.download = "http://www.adobe.com/go/getflashplayer";
this.isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
this.isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
this.isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
this.objCount = 0;
}
AC_FLCTL.prototype.WriteInstallMessage = function( width, height ) { // by MgameJP
if ( (parseInt(width)+parseInt(height))>=250 ) {
var str = '
このページをご覧いただくには、Adobe社のFlash Playerが必要になります。';
str += '
';
}else{
var str = ' ';
str += '
';
}
document.write(str);
}
AC_FLCTL.prototype.PutDefaultValue = function( args ) { // by MgameJP
if (args.indexOf('quality')%2 != 0) args.push('quality', 'high');
if (args.indexOf('align')%2 != 0) args.push('align', 'absmiddle');
if (args.indexOf('play')%2 != 0) args.push('play', 'true');
if (args.indexOf('loop')%2 != 0) args.push('loop', 'true');
if (args.indexOf('scale')%2 != 0) args.push('scale', 'showall');
if (args.indexOf('wmode')%2 != 0) args.push('wmode', 'opaque');
if (args.indexOf('devicefont')%2 != 0) args.push('devicefont', 'false');
if (args.indexOf('bgcolor')%2 != 0) args.push('bgcolor', 'white');
if (args.indexOf('menu')%2 != 0) args.push('menu', 'true');
if (args.indexOf('allowfullscreen')%2 != 0) args.push('allowfullscreen', 'false');
if (args.indexOf('allowscriptaccess')%2 != 0) args.push('allowscriptaccess', 'samedomain');
return args;
}
AC_FLCTL.prototype.ControlVersion = function() {
var version;
var axo;
var e;
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
version = axo.GetVariable("$version");
}catch(e){}
if (!version) {
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
version = "WIN 6,0,21,0";
axo.AllowScriptAccess = "always";
version = axo.GetVariable("$version");
}catch(e){}
}
if (!version) {
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = axo.GetVariable("$version");
}catch(e){}
}
if (!version) {
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = "WIN 3,0,18,0";
}catch(e){}
}
if (!version) {
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
version = "WIN 2,0,0,11";
}catch(e){ version = -1; }
}
return version;
}
AC_FLCTL.prototype.GetSwfVer = function() {
var flashVer = -1;
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
var descArray = flashDescription.split(" ");
var tempArrayMajor = descArray[2].split(".");
var versionMajor = tempArrayMajor[0];
var versionMinor = tempArrayMajor[1];
var versionRevision = descArray[3];
if (versionRevision == "") {
versionRevision = descArray[4];
}
if (versionRevision[0] == "d") {
versionRevision = versionRevision.substring(1);
} else if (versionRevision[0] == "r") {
versionRevision = versionRevision.substring(1);
if (versionRevision.indexOf("d") > 0) {
versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
}
}
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
}
}else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
else if ( this.isIE && this.isWin && !this.isOpera ) flashVer = this.ControlVersion();
return flashVer;
}
AC_FLCTL.prototype.DetectFlashVer = function(reqMajorVer, reqMinorVer, reqRevision) {
versionStr = this.GetSwfVer();
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(this.isIE && this.isWin && !this.isOpera) {
tempArray = versionStr.split(" ");
tempString = tempArray[1];
versionArray = tempString.split(",");
}else{
versionArray = versionStr.split(".");
}
var versionMajor = versionArray[0];
var versionMinor = versionArray[1];
var versionRevision = versionArray[2];
if (versionMajor > parseFloat(reqMajorVer)) {
return true;
} else if (versionMajor == parseFloat(reqMajorVer)) {
if (versionMinor > parseFloat(reqMinorVer))
return true;
else if (versionMinor == parseFloat(reqMinorVer)) {
if (versionRevision >= parseFloat(reqRevision))
return true;
}
}
return false;
}
}
AC_FLCTL.prototype.AC_AddExtension = function (src, ext) {
if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');
else
return src + ext;
}
AC_FLCTL.prototype.AC_Generateobj = function(objAttrs, params, embedAttrs) {
var str = '';
if (this.isIE && this.isWin && !this.isOpera) {
str += '';
}else{
str += '';
}
return str;
}
AC_FLCTL.prototype.AC_FL_RunContent = function() {
var ret = this.AC_GetArgs
( arguments, ".swf", "movie", this.clsid
, "application/x-shockwave-flash"
);
this.AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
AC_FLCTL.prototype.AC_SW_RunContent = function() {
var ret = this.AC_GetArgs
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
, null
);
this.AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
AC_FLCTL.prototype.AC_GetArgs = function(args, ext, srcParamName, classid, mimeType) {
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = 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.embedAttrs[args[i]] = args[i+1];
break;
case "src":
case "movie":
args[i+1] = this.AC_AddExtension(args[i+1], ext);
ret.embedAttrs["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":
case "id":
ret.objAttrs[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.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}
Array.prototype.indexOf = function(value){ // by MgameJP
for ( var i=0; i < this.length; i++ ) {
if (this[i]==value) return i;
}
return -1;
}
// AvatarViewer Control 2008.04
var FLCTL = new AC_FLCTL();
function GetPersonalAvatarFlash(p,s,a,v) {
FLCTL.objCount++;
var tags = '';
var version = '9.0.0';
var viewer = p.toString() + s.toString();
var installer = p.toString() + 'playerProductInstall';
var width, height;
var newArgs = new Array();
var args = a.split('&');
for (var i=0; i < args.length; i++) {
var thisArgs = args[i].split('=');
if (thisArgs.length!=2) continue;
var thisKey = thisArgs[0].toLowerCase();
var thisVal = decodeURIComponent(thisArgs[1]);
if ((thisKey=='codebase')||(thisKey=='pluginspage')||(thisKey=='src')||(thisKey=='movie')||(thisKey=='flashvars')) continue;
if (thisKey=='width') width = thisVal;
if (thisKey=='height') height = thisVal;
if ((thisKey!='')&&(thisVal!='')) newArgs.push(thisKey,thisVal);
}
newArgs.push('codebase', FLCTL.codebase);
newArgs.push('pluginspage', FLCTL.download);
newArgs = FLCTL.PutDefaultValue(newArgs);
var versionArray = version.split('.');
var majorVersion = versionArray[0];
var minorVersion = versionArray[1];
var revision = versionArray[2];
var hasProductInstall = FLCTL.DetectFlashVer(6, 0, 65);
if (!hasProductInstall) {
FLCTL.WriteInstallMessage( width, height );
}else{
var hasRequestedVersion = FLCTL.DetectFlashVer(majorVersion, minorVersion, revision);
if (!hasRequestedVersion) {
var MMPlayerType = (FLCTL.isIE == true) ? "ActiveX" : "PlugIn";
var MMredirectURL = window.location;
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
var MMdoctitle = document.title;
newArgs.push('src', installer);
newArgs.push('movie', installer);
newArgs.push('flashvars');
newArgs.push("MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"");
var ret = FLCTL.AC_GetArgs( newArgs, '.swf', "movie", FLCTL.clsid, 'application/x-shockwave-flash' );
}else{
newArgs.push('src', viewer);
newArgs.push('movie', viewer);
newArgs.push('flashvars', v);
var ret = FLCTL.AC_GetArgs( newArgs, '.swf', 'movie', FLCTL.clsid, 'application/x-shockwave-flash' );
}
tags = FLCTL.AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
return tags;
}
function ShowPersonalAvatarFlash(p,s,a,v) {
var tags = GetPersonalAvatarFlash(p,s,a,v);
document.write(tags);
return;
}