SWFFormFix = function(swfname){
	if(navigator.appName.toLowerCase() != "microsoft internet explorer")return false;
	var testnodename = "SWFFormFixTESTER";
	document.write('<div id="'+testnodename+'" onclick="SWFFormFixCallback(this,\''+swfname+'\');return false;" style="display:none">&nbsp;</div>');
	document.getElementById(testnodename).onclick();
}

SWFFormFixCallback = function (obj,swfname){
	var path = document;
	var error = false;
	var testnode = obj;
	while(obj = obj.parentNode){
		if(obj.nodeName.toLowerCase() == "form"){
			if(obj.name != undefined && obj.name != null && obj.name.length > 0){
				path = path.forms[obj.name];
			}else{
				alert("Error: one of your forms does not have a name!");
				error = true;
			}
		}
	}
	testnode.parentNode.removeChild(testnode);
	if(error) return false;
	window[swfname]=path[swfname];
	return true;
}

WidgetStore = function()
{
	this.gameWindows    = {};
	this.acceptLanguage = "";
}

WidgetStore.prototype.isFF3Flash8 = function()
{
	var val = false;
	if (new RegExp("Firefox/3").test(navigator.userAgent))
	{
		var mt = navigator.mimeTypes["application/x-shockwave-flash"];
		if (mt.enabledPlugin)
			if (new RegExp("Shockwave Flash 8").test(mt.enabledPlugin.description))
				val = true;
	}
	return val;
}

WidgetStore.prototype.getCulture = function()
{
	var o = window.navigator;
	var ul = o.userLanguage   || this.acceptLanguage || "";
	var sl = o.systemLanguage || o.language || "";
	
	return ((ul.indexOf("-") > -1) ? ul : ((sl.indexOf("-") > -1) ? sl : "en-us"));	
}

WidgetStore.prototype.appendQueryString = function(url, queryString)
{
	if (queryString && queryString[0] == "?")
		queryString = queryString.substring(1);

	var newUrl = url;
	if (queryString)
	{
		if (url.indexOf("?") > -1)
			newUrl += "&" + queryString.substring(1);
		else
			newUrl += "?" + queryString;
	}
	return newUrl;
}

WidgetStore.prototype.openGameWindow = function(gameWindowName, queryString)
{
	var gameWindow = this.gameWindows[gameWindowName];
	var url    = this.appendQueryString(gameWindow[0], queryString);
	var width  = gameWindow[1];
	var height = gameWindow[2];

	// This is a workaround preventing the same game opening up in multiple windows.
	// Only time will tell if it's temporary or not.
	/GameVariantId=([^&]+)/.test(queryString)
	var id = RegExp.$1 || "";
	window.open(url, id, "location=0,status=0,scrollbars=0,resizable=0,directories=0,toolbar=0,width="+width+",height="+height)
}

WidgetStore.prototype.isInDebugMode = function()
{
	/debug=([^&]+)/.test(window.location.href);
	return String(RegExp.$1).toLowerCase() == "true";
	
	//return new String(RegExp.$1).length > 0 && (new Number(RegExp.$1) == idx || RegExp.$1 == "true");
}

WidgetStore.prototype.getDayRange = function(period)
{
	var str = "";
	switch (period)
	{
		case "Today":
			str = "-1|0";
			break;
		case "Last Week":
			str = "-7|0";
			break;
		case "Last Month":
			str = "-30|0";
			break;
		case "Current Month":
			str =(-(new Date().getDate() - 1)).toString() + "|0";
			break;
		default:
			str = "0|0";
			break;
	}
	return str;
}

WidgetStore.prototype.getTimezoneOffset = function()
{
	return new Date().getTimezoneOffset() * -1;
}

WidgetStore.prototype.log = function(type, message)
{
	if (this.isInDebugMode())
		window.setTimeout("if (console && console.log) console.log('"+message+"')", 500);
}

WidgetStore.prototype.flash = function(src, width, height, flashvars)
{
	var idx = WidgetStore.ctr++;

	var objAttrs = {
		id:       "widget_" + idx,
		classid:  "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",
		codebase: "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0",
		width:    width,
		height:   height
		};
	
	var params = {
		movie: src
		};
	
	var embedAttrs = {
		name:        "widget_" + idx,
		src:         src,
		type:        "application/x-shockwave-flash",
		width:       width,
		height:      height,
		pluginspage: "http://www.macromedia.com/go/getflashplayer"
		};
	
	var fvstring  = "";
	var delimiter = "";	
	for (var key in flashvars)
	{
		fvstring += delimiter + key + "=" + flashvars[key];
		delimiter = "&";
	}
	
	var paramsAndEmbedAttrs = {
		quality:           "high",
		play:              "true",
		loop:              "true",
		menu:              "true",
		swLiveConnect:     "true",
		allowScriptAccess: "always",
		deviceFont:        "false",
		bgcolor:           "#ffffff",
		scale:             "noscale",
		wmode:             (!this.isFF3Flash8()) ? "transparent" : "window",
		salign:            "lt",
		flashvars:         fvstring		
		};
		
	var html = "<object";
	for (var key in objAttrs)
		html += " " + key + "=\"" + objAttrs[key] + "\"";
	html += ">";
	
	for (var key in params)
		html += "<param name=\"" + key + "\" value=\"" + params[key] + "\"/>";
	for (var key in paramsAndEmbedAttrs)
		html += "<param name=\"" + key + "\" value=\"" + paramsAndEmbedAttrs[key] + "\"/>";
		
	html += "<embed";
	for (var key in embedAttrs)
		html += " " + key + "=\"" + embedAttrs[key] + "\"";
	for (var key in paramsAndEmbedAttrs)
		html += " " + key + "=\"" + paramsAndEmbedAttrs[key] + "\"";
	html += "/>";
	
	html += "</object>";
	
	document.write(html);
	
	SWFFormFix("widget_" + idx);
}

WidgetStore.ctr     = 0;
WidgetStore.current = new WidgetStore();
WidgetStore.current.acceptLanguage = "sv";
WidgetStore.current.gameWindows    = {
	BingoGameWinUrl:['',0,0]
,CasinoGameWinUrl:['',0,0]
,PokerGameWinUrl:['',0,0]

	};