if(typeof com=="undefined")
var com=new Object();
if(typeof com.deconcept=="undefined")
com.deconcept=new Object();
if(typeof com.deconcept.util=="undefined")
com.deconcept.util=new Object();
if(typeof com.deconcept.FlashObjectUtil=="undefined")
com.deconcept.FlashObjectUtil=new Object();
com.deconcept.FlashObject=function(swf,id,w,h,ver,c,useExpressInstall,quality,redirectUrl,detectKey)
{
this.DETECT_KEY=detectKey?detectKey:'detectflash';
this.skipDetect=com.deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params=new Object();
this.variables=new Object();
this.attributes=new Array();
if(swf)
this.setAttribute('swf',swf);
if(id)
this.setAttribute('id',id);
if(w)
this.setAttribute('width',w);
if(h)
this.setAttribute('height',h);
if(ver)
this.setAttribute('version',new com.deconcept.PlayerVersion(ver.toString().split(".")));
if(c)
this.addParam('bgcolor',c);
var q=quality?quality:'high';
this.addParam('quality',q);
this.setAttribute('redirectUrl','');
if(redirectUrl)
this.setAttribute('redirectUrl',redirectUrl);
if(useExpressInstall)
{
var expressInstallReqVer=new com.deconcept.PlayerVersion([6,0,65]);
var installedVer=com.deconcept.FlashObjectUtil.getPlayerVersion();
if(installedVer.versionIsValid(expressInstallReqVer)&&!installedVer.versionIsValid(this.getAttribute('version')))
{
this.setAttribute('doExpressInstall',true);
}
}
else
{
this.setAttribute('doExpressInstall',false);
}
}

com.deconcept.FlashObject.prototype.setAttribute=function(name,value)
{
this.attributes[name]=value;
}

com.deconcept.FlashObject.prototype.getAttribute=function(name)
{
return this.attributes[name];
}

com.deconcept.FlashObject.prototype.getAttributes=function()
{
return this.attributes;
}

com.deconcept.FlashObject.prototype.addParam=function(name,value)
{
this.params[name]=value;
}

com.deconcept.FlashObject.prototype.getParams=function()
{
return this.params;
}

com.deconcept.FlashObject.prototype.getParam=function(name)
{
return this.params[name];
}

com.deconcept.FlashObject.prototype.addVariable=function(name,value)
{
this.variables[name]=value;
}

com.deconcept.FlashObject.prototype.getVariable=function(name)
{
return this.variables[name];
}

com.deconcept.FlashObject.prototype.getVariables=function()
{
return this.variables;
}

com.deconcept.FlashObject.prototype.getParamTags=function()
{
var paramTags="";
var key;
var params=this.getParams();
for(key in params)
{
paramTags+='<param name="'+key+'" value="'+params[key]+'" />';
}
return paramTags;
}

com.deconcept.FlashObject.prototype.getVariablePairs=function()
{
var variablePairs=new Array();
var key;
var variables=this.getVariables();
for(key in variables)
{
variablePairs.push(key+"="+variables[key]);
}
return variablePairs;
}

com.deconcept.FlashObject.prototype.getHTML=function()
{
var flashHTML="";
if(navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length)
{
if(this.getAttribute("doExpressInstall"))
{
this.addVariable("MMplayerType","PlugIn");
}
flashHTML+='<embed type="application/x-shockwave-flash" src="'+this.getAttribute('swf')+'" width="'+this.getAttribute('width')+'" height="'+this.getAttribute('height')+'" id="'+this.getAttribute('id')+'" name="'+this.getAttribute('id')+'"';
var params=this.getParams();
for(var key in params)
{
flashHTML+=' '+key+'="'+params[key]+'"';
}
pairs=this.getVariablePairs().join("&");
if(pairs.length>0)
{
flashHTML+=' flashvars="'+pairs+'"';
}
flashHTML+='></embed>';
}
else
{
if(this.getAttribute("doExpressInstall"))
{
this.addVariable("MMplayerType","ActiveX");
}
flashHTML+='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+this.getAttribute('width')+'" height="'+this.getAttribute('height')+'" id="'+this.getAttribute('id')+'">';
flashHTML+='<param name="movie" value="'+this.getAttribute('swf')+'" />';
var tags=this.getParamTags();
if(tags.length>0)
{
flashHTML+=tags;
}
var pairs=this.getVariablePairs().join("&");
if(pairs.length>0)
{
flashHTML+='<param name="flashvars" value="'+pairs+'" />';
}
flashHTML+='</object>';
}
return flashHTML;
}

com.deconcept.FlashObject.prototype.write=function(elementId)
{
if(this.skipDetect || this.getAttribute('doExpressInstall') || com.deconcept.FlashObjectUtil.getPlayerVersion().versionIsValid(this.getAttribute('version')))
{
if(document.getElementById)
{
if(this.getAttribute('doExpressInstall'))
{
this.addVariable("MMredirectURL",escape(window.location));
document.title=document.title.slice(0,47)+" - Flash Player Installation";
this.addVariable("MMdoctitle",document.title);
}
document.getElementById(elementId).innerHTML=this.getHTML();
}
}
else
{
if(this.getAttribute('redirectUrl')!="")
{
document.location.replace(this.getAttribute('redirectUrl'));
}
}
}

com.deconcept.FlashObjectUtil.getPlayerVersion=function()
{
var PlayerVersion=new com.deconcept.PlayerVersion(0,0,0);
if(navigator.plugins && navigator.mimeTypes.length)
{
var x=navigator.plugins["Shockwave Flash"];
if(x && x.description)
{
PlayerVersion=new com.deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));
}
}
else if(window.ActiveXObject)
{
try
{
var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
PlayerVersion=new com.deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
}
catch(e)
{
}
}
return PlayerVersion;
}

com.deconcept.PlayerVersion=function(arrVersion)
{
this.major=parseInt(arrVersion[0])||0;
this.minor=parseInt(arrVersion[1])||0;
this.rev=parseInt(arrVersion[2])||0;
}

com.deconcept.PlayerVersion.prototype.versionIsValid=function(fv)
{
if(this.major<fv.major)
return false;
if(this.major>fv.major)
return true;
if(this.minor<fv.minor)
return false;
if(this.minor>fv.minor)
return true;
if(this.rev<fv.rev)
return false;
return true;
}

com.deconcept.util.getRequestParameter=function(param)
{
var q=document.location.search || document.location.href.hash;
if(q)
{
var startIndex=q.indexOf(param+"=");
var endIndex=(q.indexOf("&",startIndex)>-1)?q.indexOf("&",startIndex):q.length;
if(q.length>1 && startIndex>-1)
{
return q.substring(q.indexOf("=",startIndex)+1,endIndex);
}
}
return "";
}

if(Array.prototype.push==null)
{
Array.prototype.push=function(item)
{
this[this.length]=item;
return this.length;
}
}
var getQueryParamValue=com.deconcept.util.getRequestParameter;
var FlashObject=com.deconcept.FlashObject;
