	// Get the domain from a url
function getDomain(url) {
  if (!url) return '';
  var temp = url.replace('http://','');
  temp = temp.replace('https://','');
  var temp = temp.split('/');
  return getTLD(temp[0]);
}

// Get the top-level domain from a fully-qualified domain name
function getTLD(fqdn) {
  fqdn = fqdn.toLowerCase(); // force lowercase for parsing
  var labels = fqdn.split('.');
  if (labels.length >= 3) {
    var www = labels[0] == 'www'? 1 : 0;
    // assume that any domain having at least 3 labels ending with a 2 byte label, also contains a country code for its last two labels
    labels.splice(www, (labels.slice(-1).toString().length == 2? labels.length-3-www : labels.length-2-www)); // chop subdomains
  }
  return labels.join('.');
}

	if (typeof(window['license']) == "undefined")
	{
		license = '';
	}
	
	if (typeof(window['sc_flashlocation']) == "undefined")
	{
		sc_flashlocation = 'http://speedchecker.s3.amazonaws.com/';
	}
	
	if (typeof(window['sc_location']) == "undefined")
	{
		sc_location = 'GB';
	}
	
	// if server is undefined - that means its download from BSC
	if (typeof(window['server']) == "undefined")
	{
		server = 'php';
		//download from BSC
		switch (sc_location)
		{
		case "GB":
			baseDownloadUrl='http://downloads.broadbandspeedchecker.co.uk/';
			hostedUpload=0;
			break
		case "US":
			baseDownloadUrl='http://d3lovnjy808seh.cloudfront.net/';
			hostedUpload=1;
			break
		default:
			baseDownloadUrl='http://downloads.broadbandspeedchecker.co.uk/';
			hostedUpload=0;
		}

	}
	else
	{
		//server is defined  - lets check if baseDownloadUrl is defined - if yes that means user chosen downloadable package
		if (typeof(window['baseDownloadUrl']) == "undefined")
		{
			baseDownloadUrl = "http://" + getDomain(document.location.href) + '/speedchecker/';
		}
	}
	
	//hostedUpload=1 - BSC server for upload
	if (typeof(window['hostedUpload']) == "undefined")
	{
		hostedUpload = '0';
	}
	
	
	if (typeof(window['sc_skin']) == "undefined")
	{
		sc_skin = '';
	}
	if (typeof(window['sc_h']) == "undefined")
	{
		sc_h =  (230 * sc_w) / 400;
	}
	
	var strflashvars = 'handColor=' + sc_hc + '&borderColor=' + sc_bc + '&circleColor=' + sc_cc + '&bgColor=' + sc_bgc + '&license=' + license + '&serverType=' + server + '&hostedUpload=' + hostedUpload + '&baseDownloadUrl=' + baseDownloadUrl;

	if (typeof(window['fiftymb']) != "undefined")
	{
		strflashvars += '&fiftymb=1';
	}

	var strobj = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"';
	strobj+= 'width="' + sc_w + '" height="' + sc_h + '" id="speedchecker" align="middle" VIEWASTEXT>';
	strobj+= '<param name="allowScriptAccess" value="always" />';
	strobj+= '<param name="movie" value="' + sc_flashlocation + 'speedchecker' + sc_skin + '.swf" />';
	strobj+= '<param name="loop" value="false" />';
	strobj+= '<param name="quality" value="high" />';
	strobj+= '<param name="bgcolor" value="#ffffff" />';
	
	strobj+= '<param name="flashvars" value="' + strflashvars + '" />';
	strobj+= '<embed src="' + sc_flashlocation + 'speedchecker' + sc_skin + '.swf" name="speedchecker" flashvars="' + strflashvars + '"  loop="false" ';
	strobj+= 'quality="high" bgcolor="#ffffff" width="' + sc_w +'" height="' + sc_h + '"  align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"';
	strobj+= 'pluginspage="http://www.macromedia.com/go/getflashplayer"  />';
	strobj+= '</object>';
	document.getElementById('speedcheckerdiv').innerHTML = strobj;
	function linkCheck(x)
	{
	eval(x);
	return x;
	}
	