connectionSpeed = 0;
	// The variable where connection speed information
	// will be stored when it is available.

function drawFSImageTag( fileLocation, fileSize, imgTagProperties ) {

	start = (new Date()).getTime();
		// Record Start time of <img> load.
		
	loc = fileLocation + '?t=' + escape(start);
		// Append the Start time to the image url
		// to ensure the image is not in disk cache.
		
	document.write('<img src="' + loc + '" ' + imgTagProperties + ' onload="connectionSpeed=computeConnectionSpeed(' + start + ',' + fileSize + ');">');
		// Write out the <img> tag.
	
	return;
}


function computeConnectionSpeed( start, fileSize ) {
	end = (new Date()).getTime();
	connectSpeed = (Math.floor((((fileSize) / ((end - start) / 1000)) / 1024) * 10) / 10);
	return connectSpeed;
}

function bwTest(srcUrl) {
	drawFSImageTag(srcUrl + '/bw_test.jpg',15336,'border=0 height=0  width=0 alt="Bandwidth Test"');
	return isFast();
}

function isFast() {
	if(connectionSpeed == 0) {
		window.setTimeout("isFast()", 100);
		
	} else {
		if(connectionSpeed > min_speed) {
			//alert(connectionSpeed);
			
			doFlash();
			//document.getElementById("flashcontent").style.display = 'block';
			
			
		} else {
			if(getQueryVariable('bw_test')) {
				doFlash();
				document.getElementById("flashcontent").style.display = 'block';
				return true;
			} else {
			    //set the src path for the non-flash version
				//nocache_day = new Date();
				//nocache_id = nocache_day.getTime();
				var nocache_id = Math.round(100*Math.random());
				if(!document.getElementById('av_callout')){
					if(document.getElementById('fr')){
						document.getElementById("bwcontent").innerHTML = "<p><strong>Connexion lente</strong></p><p>On dirait que votre connexion Internet est trop lente pour que vous puissiez interagir avec notre expert en ligne.</p><p><a href=\"http://www.futureshop.ca/informationcentre/FR/faqs.asp?logon=&langid=FR\" target=\"_blank\">Vous avez besoin d'aide?</a></p>";
					} else {
						document.getElementById("bwcontent").innerHTML = "<p><strong>Slow connection</strong></p><p>It looks like your internet connection is too slow for you to interact with our online expert.</p><p><a href=\"http://www.futureshop.ca/informationcentre/EN/faqs.asp?logon=&langid=EN\" target=\"_blank\">Need help?</a></p>";
					}
					document.getElementById("bwcontent").style.display = 'block';
				} else {
					if(document.getElementById('callout_search')){
						document.getElementById('callout_search').style.display = 'block';
					}
				}
				return false;
			}
		}
		
	}
}

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return false;
}

/**
 * SWFObject v1.4.2: 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=new Object();}
if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}
if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}

deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){
	if(!document.getElementById){return;}
	this.DETECT_KEY=_b?_b:"detectflash";
	this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params=new Object();
	this.variables=new Object();
	this.attributes=new Array();
	if(_1){this.setAttribute("swf",_1);}
	if(id){this.setAttribute("id",id);}
	if(w){this.setAttribute("width",w);}
	if(h){this.setAttribute("height",h);}
	if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}
	this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();
	if(c){this.addParam("bgcolor",c);}
	var q=_8?_8:"high";
	this.addParam("quality",q);
	this.setAttribute("useExpressInstall",_7);
	this.setAttribute("doExpressInstall",false);
	var _d=(_9)?_9:window.location;
	this.setAttribute("xiRedirectUrl",_d);
	this.setAttribute("redirectUrl","");
	if(_a){this.setAttribute("redirectUrl",_a);}
};


deconcept.SWFObject.prototype={setAttribute:function(_e,_f){
		this.attributes[_e]=_f;
	},getAttribute:function(_10){
		return this.attributes[_10];
	},addParam:function(_11,_12){
		this.params[_11]=_12;
	},getParams:function(){
		return this.params;
	},addVariable:function(_13,_14){
		this.variables[_13]=_14;
	},getVariable:function(_15){
		return this.variables[_15];
	},getVariables:function(){
		return this.variables;
	},getVariablePairs:function(){
		var _16=new Array();
		var key;
		var _18=this.getVariables();
		for(key in _18){
			_16.push(key+"="+_18[key]);
		}
		return _16;
	},getSWFHTML:function(){
		var _19="";
		if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
			if(this.getAttribute("doExpressInstall")){
				this.addVariable("MMplayerType","PlugIn");
			}
			_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
			_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";
			var _1a=this.getParams();
			for(var key in _1a){
				_19+=key+"=\""+_1a[key]+"\" ";
			}
			var _1c=this.getVariablePairs().join("&");
			if(_1c.length>0){
				_19+="flashvars=\""+_1c+"\"";
			}
			_19+="/>";
		}else{
			if(this.getAttribute("doExpressInstall")){
				this.addVariable("MMplayerType","ActiveX");
			}
			_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
			_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
			var _1d=this.getParams();
			for(var key in _1d){
				_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";
			}
			var _1f=this.getVariablePairs().join("&");
			if(_1f.length>0){
				_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";
			}
			_19+="</object>";
		}
		return _19;
	},write:function(_20){
		if(this.getAttribute("useExpressInstall")){
			var _21=new deconcept.PlayerVersion([6,0,65]);
			if(this.installedVer.versionIsValid(_21)&&!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);
			}
		}
		if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
			var n=(typeof _20=="string")?document.getElementById(_20):_20;
			n.innerHTML=this.getSWFHTML();
			
			/************************ START ADDED FOR FS AVATAR **************************
			if(!document.getElementById('av_callout')){
				document.getElementById('av_flash').style.height = "368px";
				parent.document.getElementById('avatar_frame').style.height = "368px";
			} else {
				document.getElementById('av_callout').style.height = "204px";
			}*/
			if(document.getElementById('av_callout')){
				document.getElementById('av_callout').style.height = "204px";
			} else {
				document.getElementById('av_flash').style.height = "368px";
			}
			/************************ END ADDED FOR FS AVATAR ***************************/
			return true;
		}else{
			if(this.getAttribute("redirectUrl")!=""){
				document.location.replace(this.getAttribute("redirectUrl"));
			}
			
			/************************ START ADDED FOR FS AVATAR **************************
			if(!document.getElementById('av_callout')){
				document.getElementById("flash_err").style.display = "block";
				document.getElementById('av_flash').style.height = "259px";
				parent.document.getElementById('avatar_frame').style.height = "259px";
			} else {	
				document.getElementById('callout_search').style.display = 'block';
			}*/
			if(document.getElementById('av_callout')){
				document.getElementById('callout_search').style.display = 'block';
			} else {
				document.getElementById('no_flash').style.display = "block";
			}
			/************************ END ADDED FOR FS AVATAR ***************************/
		}
			return false;
		}
};

deconcept.SWFObjectUtil.getPlayerVersion=function(){
	var _23=new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins&&navigator.mimeTypes.length){
		var x=navigator.plugins["Shockwave Flash"];
		if(x&&x.description){
			_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));
		}
	}else{
		try{
			var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		}
		catch(e){
			try{
				var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
				_23=new deconcept.PlayerVersion([6,0,21]);
				axo.AllowScriptAccess="always";
				}
			catch(e){
				if(_23.major==6){return _23;}
			}
			try{
				axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
				}
			catch(e){}
		}
		if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}
	}
	return _23;
};

deconcept.PlayerVersion=function(_27){
	this.major=_27[0]!=null?parseInt(_27[0]):0;
	this.minor=_27[1]!=null?parseInt(_27[1]):0;
	this.rev=_27[2]!=null?parseInt(_27[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;
};
deconcept.util={getRequestParameter:function(_29){
var q=document.location.search||document.location.hash;
if(q){
var _2b=q.substring(1).split("&");
for(var i=0;i<_2b.length;i++){
if(_2b[i].substring(0,_2b[i].indexOf("="))==_29){
return _2b[i].substring((_2b[i].indexOf("=")+1));}}}
return "";}};
deconcept.SWFObjectUtil.cleanupSWFs=function(){
var _2d=document.getElementsByTagName("OBJECT");
for(var i=0;i<_2d.length;i++){
_2d[i].style.display="none";
for(var x in _2d[i]){if(typeof _2d[i][x]=="function"){_2d[i][x]=null;}}}};
if(typeof window.onunload=="function"){
var oldunload=window.onunload;
window.onunload=function(){
deconcept.SWFObjectUtil.cleanupSWFs();
oldunload();};
}else{window.onunload=deconcept.SWFObjectUtil.cleanupSWFs;}
if(Array.prototype.push==null){
Array.prototype.push=function(_30){
this[this.length]=_30;
return this.length;};}

var getQueryParamValue=deconcept.util.getRequestParameter;
var FlashObject=deconcept.SWFObject; // for legacy support
var SWFObject=deconcept.SWFObject;

