/**
 * SWFObject v1.4.1: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 * 
 */
if(typeof deconcept == "undefined") { var deconcept = {} ; }
if(typeof deconcept.util == "undefined") { deconcept.util = {} ; }
if(typeof deconcept.SWFObjectUtil == "undefined") { deconcept.SWFObjectUtil = {} ; }
deconcept.SWFObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, xiRedirectUrl, redirectUrl, detectKey) {
	if (!document.createElement || ! _proxy_jslib_handle(document, 'getElementById', '', 0, 0)) { return; }
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params = {};
	this.variables = {};
	this.attributes = [];
	if(swf) {  _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('swf', swf); }
	if(id) {  _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('id', id); }
	if(w) {  _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('width', w); }
	if(h) {  _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('height', h); }
	if(ver) {  _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('version', new (deconcept.PlayerVersion)( _proxy_jslib_handle(ver, 'toString', '', 1, 0)().split("."))); }
	this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion(this.getAttribute('version'), useExpressInstall);
	if(c) { this.addParam('bgcolor', c); }
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	 _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('useExpressInstall', useExpressInstall);
	 _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('doExpressInstall', false);
	var xir = (xiRedirectUrl) ? xiRedirectUrl :  _proxy_jslib_handle(window, 'location', '', 0, 0);
	 _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('xiRedirectUrl', xir);
	 _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('redirectUrl', '');
	if(redirectUrl) {  _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('redirectUrl', redirectUrl); }
};
deconcept.SWFObject.prototype = {
	setAttribute: function(name, value) {
		 _proxy_jslib_assign('', this.attributes, (name), '=', (  _proxy_jslib_handle(null, 'value', value, 0, 0)));
	},
	getAttribute: function(name) {
		return  _proxy_jslib_handle(this.attributes, (name), 0, 0);
	},
	addParam: function(name, value) {
		 _proxy_jslib_assign('', this.params, (name), '=', (  _proxy_jslib_handle(null, 'value', value, 0, 0)));
	},
	getParams: function() {
		return this.params;
	},
	addVariable: function(name, value) {
		 _proxy_jslib_assign('', this.variables, (name), '=', (  _proxy_jslib_handle(null, 'value', value, 0, 0)));
	},
	getVariable: function(name) {
		return  _proxy_jslib_handle(this.variables, (name), 0, 0);
	},
	getVariables: function() {
		return this.variables;
	},
	getVariablePairs: function() {
		var variablePairs = [];
		var key;
		var variables = this.getVariables();
		for(key in variables){
			variablePairs.push(key +"="+  _proxy_jslib_handle(variables, (key), 0, 0));
		}
		return variablePairs;
	},
	getSWFHTML: function() {
		var swfNode = "";
		if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) {
      // netscape plugin architecture
			if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); }
			swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"';
			swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
			var params = this.getParams();
			 for(var key in params){ swfNode += [key] +'="'+  _proxy_jslib_handle(params, (key), 0, 0) +'" '; }
			var pairs = this.getVariablePairs().join("&");
			 if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
			swfNode += '/>';
		} else {
      // PC IE
			if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); }
			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';
			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
			var params = this.getParams();
			for(var key in params) {
			 swfNode += '<param name="'+ key +'" value="'+  _proxy_jslib_handle(params, (key), 0, 0) +'" />';
			}
			var pairs = this.getVariablePairs().join("&");
			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
			swfNode += "</object>";
		}
		return swfNode;
	},
	write: function(elementId) {
		if(this.getAttribute('useExpressInstall')) {
			// check to see if we need to do an express install
			var expressInstallReqVer = new (deconcept.PlayerVersion)([6,0,65]);
			if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
				 _proxy_jslib_handle(this, 'setAttribute', '', 1, 0)('doExpressInstall', true);
				this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
				document.title = document.title.slice(0, 47) + " - Flash Player Installation";
				this.addVariable("MMdoctitle", document.title);
			}
		}
		if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
			var n = (typeof elementId == 'string') ?  _proxy_jslib_handle(document, 'getElementById', '', 1, 0)(elementId) : elementId;
			 _proxy_jslib_assign('', n, 'innerHTML', '=', ( this.getSWFHTML()));
			return true;
		}else{
			if(this.getAttribute('redirectUrl') !== "") {
				 _proxy_jslib_handle( _proxy_jslib_handle(document, 'location', '', 0, 0), 'replace', '', 1, 0)(this.getAttribute('redirectUrl'));
			}
		}
		return false;
	}
};

/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(reqVer, xiInstall) {
	var PlayerVersion = new (deconcept.PlayerVersion)([0,0,0]);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x =  _proxy_jslib_handle(navigator.plugins, ("Shockwave Flash"), 0, 0);
		if(x && x.description) {
			PlayerVersion = new (deconcept.PlayerVersion)( _proxy_jslib_handle( _proxy_jslib_handle(x.description, 'replace', '', 1, 0)(/([a-z]|[A-Z]|\s)+/, ""), 'replace', '', 1, 0)(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else{
		try{
			var axo = new (ActiveXObject)("ShockwaveFlash.ShockwaveFlash");
			for (var i=3; axo!==null; i++) {
				axo = new (ActiveXObject)("ShockwaveFlash.ShockwaveFlash."+i);
				PlayerVersion = new (deconcept.PlayerVersion)([i,0,0]);
			}
		}catch(e){}
		if (reqVer && PlayerVersion.major > reqVer.major) { return PlayerVersion; } // version is ok, skip minor detection 
		// this only does the minor rev lookup if the user's major version 
		// is not 6 or we are checking for a specific minor or revision number
		// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
		if (!reqVer || ((reqVer.minor !== 0 || reqVer.rev !== 0) && PlayerVersion.major == reqVer.major) || PlayerVersion.major != 6 || xiInstall) {
			try{
				PlayerVersion = new (deconcept.PlayerVersion)(axo.GetVariable("$version").split(" ")[1].split(","));
			}catch(e){}
		}
	}
	return PlayerVersion;
};
deconcept.PlayerVersion = function(arrVersion) {
	this.major = parseInt(arrVersion[0]) !== null ? parseInt(arrVersion[0]) : 0;
	this.minor = parseInt(arrVersion[1]) || 0;
	this.rev = parseInt(arrVersion[2]) || 0;
};
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;
};
/* ---- get value of query string param ---- */
deconcept.util = {
	getRequestParameter: function(param) {
		var q =  _proxy_jslib_handle( _proxy_jslib_handle(document, 'location', '', 0, 0), 'search', '', 0, 0) ||  _proxy_jslib_handle(document, 'location', '', 0, 0).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 "";
	}
};
/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs = function() {
	var objects =  _proxy_jslib_handle(document, 'getElementsByTagName', '', 1, 0)("OBJECT");
	for (var i=0; i < objects.length; i++) {
		for (var x in  _proxy_jslib_handle(objects, (i), 0, 0)) {
			if (typeof  _proxy_jslib_handle( _proxy_jslib_handle(objects, (i), 0, 0), (x), 0, 0) == 'function') {
				 _proxy_jslib_assign('',  _proxy_jslib_handle(objects, (i), 0, 0), (x), '=', ( null));
			}
		}
	}
};
if (typeof window.onunload == 'function') {
	var oldunload = window.onunload;
		window.onunload = function() {
		deconcept.SWFObjectUtil.cleanupSWFs();
		oldunload();
	};
} else {
	window.onunload = deconcept.SWFObjectUtil.cleanupSWFs;
}
/* add Array.push if needed (ie5) */
if (Array.prototype.push === null) { Array.prototype.push = function(item) {  _proxy_jslib_assign('', this, (this.length), '=', ( item)); return this.length; }; }

/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;
 ;
_proxy_jslib_flush_write_buffers() ;