// gameday08
function launchGameday(params) {
	//backward compatibility for 05 and 06
	var baseURL = document.location.href.indexOf('qa') != -1 ? "http://qa2.mlb.com" : document.location.href.indexOf('beta') != -1 ? "http://beta.mlb.com" : "http://mlb.mlb.com",
		winName = "GamedayWin",
		isv4 = false,
		isMLBgame = false,
		thisWinName = window.name,
		parentIsMini = thisWinName.indexOf('gdmini_')!=-1,
		parentIsGD   = thisWinName.indexOf('gd_')!=-1;
	var gamedayURL,
	    gd_w,
	    gd_h,
	    gd_windowOptions;

	/**
	 * @desc  objectify string parameters
	 */
	function _objectifyParams(){
		var kvp = params.replace(/^\?/i,'').split('&');
		var rParams = {};
		if(kvp instanceof Array) {
			kvp.reverse();
			var vpl = kvp.length-1;
			var vp, op;								
			do {
				vp = kvp[vpl].split('=');
				switch(true) {
					case ((rParams[vp[0]]!=null) && !(rParams[vp[0]] instanceof Array)):
						op = rParams[vp[0]];
						rParams[vp[0]] = [op, vp[1]];
						break;
					case (rParams[vp[0]] instanceof Array):
						rParams[vp[0]].push(vp[1]);
						break;
					case (vp[0].length === 26):
						rParams['gid'] = vp[0];
						break;
					default:			
						rParams[vp[0]] = vp[1];
				}
			} while(vpl--);
			kvp = null;
		}

		return rParams;
	}
	
	var paramsObj = (typeof(params)!='object') ? _objectifyParams() : params;

	var gid  = paramsObj.gid  || "";
	var mode = paramsObj.mode || "";
	var lurl = paramsObj.lurl || "#";
	var env  = paramsObj.env  || "";
	if(gid.substring(21,24) == "mlb" || gid.substring(21,24) == "min" || gid.substring(21,24) == "int"  || gid.substring(21,24) == "win") { isMLBgame = true; }
	
	//2005
	if(gid.indexOf("2005") != -1) {
		gamedayURL = '/mlb/gameday/gd2005.html?' + gid + (env!='' ? '&env='+env : ''); 
		gd_w=770;
		gd_h=600;
	//2006
	} else if(gid.indexOf("2006") != -1) {
		gamedayURL = '/mlb/gameday/y2006/gd.html?' + gid + (env!='' ? '&env='+env : '');
		gd_w=770;
		gd_h=600;
	//2007
	} else if((gid.indexOf("2007") != -1) || (gid.indexOf("2008") != -1 && !isMLBgame)) { 
		gamedayURL = '/mlb/gameday/y2007/gd.html?' + gid + (env!='' ? '&env='+env : '');
		gd_w=980;
		gd_h=600;
	} else if(gid.indexOf("2008") != -1 && isMLBgame && mode == 'mini') {
		isv4 = true;
		winName=(!!parentIsMini) ? thisWinName : 'gdmini_'+gid;
		gamedayURL = '/mlb/gameday/mini.jsp?gid=' + gid + ( mode != '' ? '&mode='+mode : '' ) + ( env != '' ? '&env='+env : '' );
		gd_w=300;
		gd_h=400;
	} else if(gid.indexOf("2008") != -1 && isMLBgame) { 
		isv4 = true;
		gamedayURL = '/mlb/gameday/index.jsp?gid=' + gid + ( mode != '' ? '&mode='+mode : '' ) + ( env != '' ? '&env='+env : '' ) + '&ist=t';
		gd_w=!!!parentIsMini ? window.innerWidth  : 990;
		gd_h=!!!parentIsMini ? window.innerHeight : 576;
	} else if(gid.indexOf("2009") != -1 && isMLBgame && mode == 'mini') {
		isv4 = true;
		winName=(!!parentIsMini) ? thisWinName : 'gdmini_'+gid;
		gamedayURL = '/mlb/gameday/mini.jsp?gid=' + gid + ( mode != '' ? '&mode='+mode : '' ) + ( env != '' ? '&env='+env : '' );
		gd_w=300;
		gd_h=400;
	} else if(gid.indexOf("2009") != -1 && isMLBgame) { 
		isv4 = true;
		gamedayURL = '/mlb/gameday/index.jsp?gid=' + gid + ( mode != '' ? '&mode='+mode : '' ) + ( env != '' ? '&env='+env : '' ) + '&ist=t';
		gd_w=!!!parentIsMini ? window.innerWidth  : 990;
		gd_h=!!!parentIsMini ? window.innerHeight : 576;
	} else if(gid.indexOf("2009") != -1 && isMLBgame && mode == 'mini') {
		isv4 = true;
		winName=(!!parentIsMini) ? thisWinName : 'gdmini_'+gid;
		gamedayURL = '/mlb/gameday/mini.jsp?gid=' + gid + ( mode != '' ? '&mode='+mode : '' ) + ( env != '' ? '&env='+env : '' );
		gd_w=300;
		gd_h=400;
	} else if(gid.indexOf("2009") != -1 && isMLBgame) { 
		isv4 = true;
		gamedayURL = '/mlb/gameday/index.jsp?gid=' + gid + ( mode != '' ? '&mode='+mode : '' ) + ( env != '' ? '&env='+env : '' ); // + '&ist=t';
		gd_w=!!!parentIsMini ? window.innerWidth  : 990;
		gd_h=!!!parentIsMini ? window.innerHeight : 576;
	}


	//using window.open so it pops in tabs
	if ((!isv4 && mode=='gameday') || (!!isv4 && mode=='mini') || (!!isv4 && mode=='gameday' && !!parentIsMini)) {
		gd_windowOptions = (!!isv4 && mode=='gameday' && !!parentIsMini) ? 'location=yes,menubar=yes,scrollbars=yes,status=yes,toolbar=yes,resizable=yes' : 'location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=yes';
		popWin(baseURL+gamedayURL,winName,gd_w,gd_h,gd_windowOptions);
	} else if (!isv4) {
		window.location.href = lurl;
	} else if (!!parentIsGD){
		window.location.href = baseURL+gamedayURL;
	} else {
		//using window.open so it pops in tabs
		window.open(baseURL+gamedayURL,'gd_'+gid);
	}
}



//for use when wanting to launch minor gameday from mlb site.
function launchMILBGameday(params) {
	//backward compatibility for 05
	if(params.indexOf("2006") != -1) { launchGameday(params); }
	else if(params.indexOf("2007") != -1) {
		gamedayURL = "http://www.minorleaguebaseball.com/milb/gameday/y2007/gd.html?" + params; 
		popWin(gamedayURL,'GamedayWin','980','600','location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=yes');
	} else {
		alert("Access to Minor League Gameday outside of 2006 and 2007 season is prohibited.");
	}
}
var _pw_l,_pw_t,_pw_z;
function popWin(url,n,w,h,o) {
	if (w>screen.availWidth-12) w=screen.availWidth-12;
	if (h>screen.availHeight-48) h=screen.availHeight-48;
	_pw_l=(screen.availWidth-w-12)/2;
	_pw_t=(screen.availHeight-h-48)/2;
	_pw_z=window.open(url,n,'width='+w+',height='+h+',left='+_pw_l+',top='+_pw_t+','+o);
}