if (typeof sas == "undefined")
	var sas = new Object();
if (typeof sas.ued == "undefined")
	sas.ued = new Object();
if (typeof sas.ued.util == "undefined")
	sas.ued.util = new Object();
if (typeof sas.ued.FlashObjectUtil == "undefined")
	sas.ued.FlashObjectUtil = new Object();
sas.ued.FlashObject = function(swf, id, w, h, ver, c, useExpressInstall,
		quality, xiRedirectUrl, redirectUrl, detectKey)
{
	if (!document.createElement || !document.getElementById)
		return;
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = sas.ued.util.getRequestParameter(this.DETECT_KEY);
	this.params = new Object();
	this.variables = new Object();
	this.attributes = new Array();
	this.useExpressInstall = useExpressInstall;
	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 sas.ued.PlayerVersion(ver.toString()
				.split(".")));
	this.installedVer = sas.ued.FlashObjectUtil.getPlayerVersion(this
			.getAttribute('version'), useExpressInstall);
	if (c)
		this.addParam('bgcolor', c);
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if (redirectUrl)
		this.setAttribute('redirectUrl', redirectUrl)
};
sas.ued.FlashObject.prototype = {
	setAttribute : function(name, value) {
		this.attributes[name] = value
	},
	getAttribute : function(name) {
		return this.attributes[name]
	},
	addParam : function(name, value) {
	    this.params[name] = value
	},
	getParams : function() {
		return this.params
	},
	addVariable : function(name, value) {
		this.variables[name] = value
	},
	getVariable : function(name) {
		return unescape(this.variables[name])
	},
	getVariables : function() {
		return this.variables
	},
	createParamTag : function(n, v) {
		var p = document.createElement('param');
		p.setAttribute('name', n);
		p.setAttribute('value', v);		
		return p
	},
	getVariablePairs : function() {
		var variablePairs = new Array();
		var key;
		var variables = this.getVariables();
		for (key in variables) {
			variablePairs.push(key + "=" + variables[key])
		}
		return variablePairs
	},
	getFlashHTML : function() {
		var flashNode = "";
		if (navigator.plugins && navigator.mimeTypes
				&& navigator.mimeTypes.length) {
			if (this.getAttribute("doExpressInstall"))
				this.addVariable("MMplayerType", "PlugIn");
			flashNode = '<embed type="application/x-shockwave-flash" src="'
					+ this.getAttribute('swf') + '" width="'
					+ this.getAttribute('width') + '" height="'
					+ this.getAttribute('height') + '"';
			flashNode += ' id="' + this.getAttribute('id') + '" name="'
					+ this.getAttribute('id') + '" ';
			var params = this.getParams();
			for ( var key in params) {
				flashNode += [ key ] + '="' + params[key] + '" '
			}
			var pairs = this.getVariablePairs().join("&");
			if (pairs.length > 0) {
				flashNode += 'flashvars="' + pairs + '"'
			}
			flashNode += '/>'
		} else {
			if (this.getAttribute("doExpressInstall"))
				this.addVariable("MMplayerType", "ActiveX");
			flashNode = '<object id="'
					+ this.getAttribute('id')
					+ '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'
					+ this.getAttribute('width') + '" height="'
					+ this.getAttribute('height') + '">';
			flashNode += '<param name="movie" value="' + this.getAttribute('swf') + '" />';
			var params = this.getParams();
			for ( var key in params) {
				flashNode += '<param name="' + key + '" value="' + params[key]
						+ '" />'
			}
			var pairs = this.getVariablePairs().join("&");
			if (pairs.length > 0) {
				flashNode += '<param name="flashvars" value="' + pairs + '" />'
			}
			flashNode += "</object>"
		}
		return flashNode
	},
	write : function(elementId) {
		if (this.useExpressInstall) {
			var expressInstallReqVer = new sas.ued.PlayerVersion( [ 6, 0, 65 ]);
			if (this.installedVer.versionIsValid(expressInstallReqVer)
					&& !this.installedVer.versionIsValid(this
							.getAttribute('version'))) {
				this.setAttribute('doExpressInstall', true);
				this.addVariable("MMredirectURL", escape(this
						.getAttribute('xiRedirectUrl')));
				document.title = document.title.slice(0, 47)
						+ " - Flash Player Installation";
				this.addVariable("MMdoctitle", document.title)
			}
		} else {
			this.setAttribute('doExpressInstall', false)
		}
		if (this.skipDetect
				|| this.getAttribute('doExpressInstall')
				|| this.installedVer.versionIsValid(this
						.getAttribute('version'))) {
			var n = (typeof elementId == 'string') ? document
					.getElementById(elementId) : elementId;
			n.innerHTML = this.getFlashHTML()
		} else {
			if (this.getAttribute('redirectUrl') != "") {
				document.location.replace(this.getAttribute('redirectUrl'))
			}
		}
	}
};

sas.ued.FlashObjectUtil.getPlayerVersion = function(reqVer, xiInstall) {
	var PlayerVersion = new sas.ued.PlayerVersion(0, 0, 0);
	if (navigator.plugins && navigator.mimeTypes.length) {
		var x = navigator.plugins["Shockwave Flash"];
		if (x && x.description) {
			PlayerVersion = new sas.ued.PlayerVersion(x.description.replace(
					/([a-z]|[A-Z]|\s)+/, "").replace(/(\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 sas.ued.PlayerVersion( [ i, 0, 0 ])
			}
		} catch (e) {
		}
		if (reqVer && PlayerVersion.major > reqVer.major)
			return PlayerVersion;
		if (!reqVer
				|| ((reqVer.minor != 0 || reqVer.rev != 0) && PlayerVersion.major == reqVer.major)
				|| PlayerVersion.major != 6 || xiInstall) {
			try {
				PlayerVersion = new sas.ued.PlayerVersion(axo.GetVariable(
						"$version").split(" ")[1].split(","))
			} catch (e) {
			}
		}
	}
	return PlayerVersion

};

sas.ued.PlayerVersion = function(arrVersion) {

	this.major = parseInt(arrVersion[0]) || 0;

	this.minor = parseInt(arrVersion[1]) || 0;

	this.rev = parseInt(arrVersion[2]) || 0

};

sas.ued.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

};

sas.ued.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 = sas.ued.util.getRequestParameter;

var sohuFlash = sas.ued.FlashObject;

function Cookie(document, name, hours, path, domain, secure) {

	this.$document = document;

	this.$name = name;

	this.$expiration = hours ? new Date((new Date()).getTime() + hours
			* 3600000) : null;

	this.$path = path ? path : null;

	this.$domain = domain ? domain : null;

	this.$secure = secure;

};

Cookie.prototype.store = function() {

	var cookieval = "";

	for ( var prop in this) {

		if ((prop.charAt(0) == '$') || ((typeof this[prop]) == 'function'))
			continue;

		if (cookieval != "")
			cookieval += '&';

		cookieval += prop + ':' + escape(this[prop]);

	}
	var cookie = this.$name + '=' + cookieval;

	if (this.$expiration)
		cookie += '; expires=' + this.$expiration.toGMTString();

	if (this.$path)
		cookie += '; path=' + this.$path;

	if (this.$domain)
		cookie += '; domain=' + this.$domain;

	if (this.$secure)
		cookie += '; secure';

	this.$document.cookie = cookie;

};

Cookie.prototype.load = function() {

	var allcookies = this.$document.cookie;

	if (allcookies == "")
		return false;

	var start = allcookies.indexOf(this.$name + '=');

	if (start == -1)
		return false;

	start += this.$name.length + 1;

	var end = allcookies.indexOf(';', start);

	if (end == -1)
		end = allcookies.length;

	var cookieval = allcookies.substring(start, end);

	var a = cookieval.split('&');

	for ( var i = 0; i < a.length; i++)
		a[i] = a[i].split(':');
	for ( var i = 0; i < a.length; i++)
		this[a[i][0]] = unescape(a[i][1]);
	return true;

};

Cookie.prototype.remove = function() {

	var cookie;

	cookie = this.$name + '=';

	if (this.$path)
		cookie += '; path=' + this.$path;

	if (this.$domain)
		cookie += '; domain=' + this.$domain;

	cookie += '; expires=Fri, 02-Jan-1970 00:00:00 GMT';

	this.$document.cookie = cookie;

};
