// ===================================================================================
// FileName    : MediaCentreSource.js
// Location    : /Shared/Scripts/Racing
// 
// Author      : Evan Wood
// Date        : 25.Aug.2005
// Summary     :
// Provides client side processing specific to DRM - Media Centre
// 
// $Author: Antonioa $  $Date: 29/09/06 3:57p $
// ===================================================================================

/************* TODO *************/

// 1. 


/*********** INCLUDES ***********/

// #include <XmlHttpControls.js>
// #include <XmlHttp.js>
// #include <Utility.js>

/******* GLOBAL VARIABLES *******/

/* const */ var NtgHtmlDivId = 'DivNtgHtml';
/* const */ var ReplayHtmlDivId = 'DivReplaysHtml';
var AudioDivId = 'AudioDiv';
var LogoDivId = 'LogoDiv';
var divAudioContents;
var divLogoContents;
var raceNameUrl;

var mcStoredUrl = "";
var videoPlaying = 'false';

/* const */ var NTG_FILTER_PARAM = "Filter";
/* const */ var NTG_EXPRESS_BET_PARAM = "NtgMode";

/* const */ var MAX_NUM_NTG_RACES = 7;
/* const */ var MAX_NUM_REPLAYS = 4;

/* const */ var NtgRacingImageLookup = new Array();
NtgRacingImageLookup["Galloping"] = "/Shared/Images/Media/en-au/horse.gif";
NtgRacingImageLookup["Harness"] = "/Shared/Images/Media/en-au/legs.gif";
NtgRacingImageLookup["Greyhounds"] = "/Shared/Images/Media/en-au/dog.gif";

/* const */ var McAudioReplayImageLookup = new Array();
McAudioReplayImageLookup["Galloping"] = "/Shared/Images/Media/en-au/gra_mediaplay_raceicon.gif";
McAudioReplayImageLookup["Harness"] = "/Shared/Images/Media/en-au/gra_mediaplay_troticon.gif";
McAudioReplayImageLookup["Greyhounds"] = "/Shared/Images/Media/en-au/gra_mediaplay_greyicon.gif";
var racingTypeAudioReplayImage;

var McCulture = "en-au";

/******** PUBLIC METHODS ********/

/******** PRIVATE METHODS ********/




///////************************ LOAD DATA *******************///////////////////


// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>McRefresh</name>
/// <date>25.Aug.2005</date>
/// 
/// <summary>
/// Loads the user controls for Media Centre Right Hand Side
/// </summary>
/// 
/// <returns>void</returns>
///
// --------------------------------------------------------------------------------
/* private void */ function McRefresh()
{
	var requestContext = XhBuildGlobalRequestContext(NTG_FILTER_PARAM, "ALL", NTG_EXPRESS_BET_PARAM, "MediaCentre");
	XhRefreshControlsStateless(requestContext, new Array(XC_NTG_NTG_VIEW, XC_MC_REPLAYS, XC_MC_LATEST_RESULTS));
}

///////********************** END LOAD DATA ********************///////////

///////************************ RENDERING **********************///////////

// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>NtgShowNtgView</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Takes a race list and displays content as html
/// Pre: raceList is an array of races, each race is represented as a string
///			in the following format:
///			RacingCode|MeetingCode|RaceNumber|Date(yyyy-MM-dd)|StartTime|RaceDescription
/// </summary>
/// 
/// <returns>void</returns>
///
/// <param name="date"></param>
/// <param name="raceList"></param>
// --------------------------------------------------------------------------------
/* private void */ function NtgShowNtgView(date, raceList)
{
	//build header
	var data = "<table width=\"310\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" >";

	// 1. Test races not empty
	if (raceList == null || raceList.length == 0)
	{
	//  1.1 If empty render "" for the 7 possible races next to run
		for(i=0; i<7; i++)
		{
			data += "<tr><td>&nbsp</td></tr>";
		}
	}
	else
	{
	// 2. foreach entry in races
		for (var i in raceList)
		{
	//  2.1 split the data string using | as delimiter
			var raceData = raceList[i].split("|");
	//  2.2 Render the race using McRenderNtgRow()
			data += McRenderNtgRow(raceData[6], raceData[0], raceData[1], raceData[2], raceData[3], raceData[4], raceData[5]);
		}
		
		for(i=0; i<(7-raceList.length); i++)
		{
			data += "<tr><td>&nbsp</td></tr>";
		}
	}
	data += "</table>";
	RenderNtg(data);
}

// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>NtgRender</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Wrapper used to render html into the correct div
/// </summary>
/// 
/// <returns>void</returns>
///
/// <param name="html"></param>
// --------------------------------------------------------------------------------
/* private void */ function RenderNtg(html)
{
	document.getElementById(NtgHtmlDivId).innerHTML = html;
}


// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>McRenderNtgRow</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Returns the html for single row within the Next To Go view
/// Post: Each race will fire "RaceBet()" when clicked
/// </summary>
/// 
/// <returns>string</returns>
///
/// <param name="racingCode"></param>
/// <param name="meetingCode"></param>
/// <param name="date"></param>
/// <param name="raceNumber"></param>
/// <param name="description"></param>
// --------------------------------------------------------------------------------
/* private string */ function McRenderNtgRow(racingType, racingCode, meetingCode, date, 
																							raceNumber, raceTime, description)
{
	var RowHtml = "";
	var displayRaceNumber = parseInt(raceNumber, 10);
	var onclick = "RaceBet(";
	onclick += "'" + racingCode + "',";
	onclick += "'" + meetingCode + "',";
	onclick += "'" + date + "',";
	onclick += "'" + raceNumber + "'";
	onclick += ");";
	
	var hyperlink = "<a href='javascript:void(0);' class=\"grey\" onclick=\"" + onclick + "return false;\">";
	
	var racingTypeImage = NtgRacingImageLookup[racingType];
	
	RowHtml += "<tr><td width=\"26\" align=\"right\"><img src=\"" + racingTypeImage + "\" width=\"20\" height=\"13\" alt=\"" + racingType + "\" /></td>";
	RowHtml += "<td height=\"19\" width=\"58\" align=\"right\"><span class=\"whitebold\">" + raceTime + "</span></td>";
	RowHtml += "<td><img src=\"/Shared/Images/Racing/en-au/gra_spacer.gif\" width=\"10\" height=\"1\" alt=\"\" /></td>";
	RowHtml += "<td align=\"left\" width=\"39\"><span class=\"greybold\">" + meetingCode + racingCode + displayRaceNumber + "</span></td>";
	RowHtml += "<td><img src=\"/Shared/Images/Racing/en-au/gra_spacer.gif\" width=\"10\" height=\"1\" alt=\"\" /></td>";
	RowHtml += "<td width=\"130\" align=\"left\">" + hyperlink + description + "</a></td>";
	RowHtml += "<td><img src=\"/Shared/Images/Racing/en-au/gra_spacer.gif\" width=\"10\" height=\"1\" alt=\"\" /></td>";
	RowHtml += "<td width=\"27\" align=\"left\"><a onclick=\"" + onclick + "return false;\" href=\"javascript:;\"><img border=\"0\" src=\"/Shared/Images/Media/" + McCulture + "/img_bet.gif\" width=\"20\" height=\"11\" title=\"BET\" alt=\"\" /></a></td></tr>";

	return RowHtml;
}


// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>McShowRaceReplayView</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Takes a race list and displays content as html
/// Pre: raceList is an array of races, each race is represented as a string
///			in the following format:
///			RacingCode|MeetingCode|RaceNumber|Date(yyyy-MM-dd)|StartTime|RaceDescription
/// </summary>
/// 
/// <returns>void</returns>
///
/// <param name="raceList"></param>
// --------------------------------------------------------------------------------
/* private void */ function McShowRaceReplayView(raceList)
{
	//build header
	var data = "<table width=\"310\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" >";

	// 1. Test races not empty
	if (raceList == null || raceList.length == 0)
	{
	//  1.1 If empty render "" for the 4 available replay spaces
		for(i=0; i<4; i++)
		{
			data += "<tr><td>&nbsp</td></tr>";
		}
	}
	else
	{
	// 2. foreach entry in races
		for (var i in raceList)
		{
	//  2.1 split the data string using | as delimiter
			var raceData = raceList[i].split("|");
	//  2.2 Render the race using NtgRenderNtgRow()
			data += McRenderReplayRow(raceData[11], raceData[7], raceData[0], raceData[1], raceData[2], raceData[3], raceData[4], raceData[5], raceData[6], raceData[8], raceData[9], raceData[10]);
		}
		
		for(i=0; i<(4-raceList.length); i++)
		{
			data += "<tr><td>&nbsp</td></tr>";
		}
	}
	data += "</table>";
	RenderReplays(data);
}

// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>RenderReplays</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Wrapper used to render html into the correct div
/// </summary>
/// 
/// <returns>void</returns>
///
/// <param name="html"></param>
// --------------------------------------------------------------------------------
/* private void */ function RenderReplays(html)
{
	document.getElementById(ReplayHtmlDivId).innerHTML = html;
}


// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>McRenderReplayRow</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Returns the html for single row within the Next To Go view
/// Post: Each race will fire "RaceResults()" when clicked
/// </summary>
/// 
/// <returns>string</returns>
///
/// <param name="racingCode"></param>
/// <param name="meetingCode"></param>
/// <param name="date"></param>
/// <param name="raceNumber"></param>
/// <param name="description"></param>
// --------------------------------------------------------------------------------
/* private string */ function McRenderReplayRow(jurisdiction, racingType, racingCode, meetingCode, date, raceNumber, raceTime, raceDescription, meetingDescription, shortAudioAvailable, shortAudioLink, longAudioLink)
{
	var RowHtml = "";
	var displayRaceNumber = parseInt(raceNumber, 10);
	var audioOnClick = "";
	var onclick = "RaceReplayResults(";
	onclick += "'" + racingCode + "',";
	onclick += "'" + meetingCode + "',";
	onclick += "'" + date + "',";
	onclick += "'" + raceNumber + "'";
	onclick += ");";
	
	var audioLink = shortAudioLink;
	if(shortAudioAvailable == 'false')
	{
		audioLink = longAudioLink;
	}
	
	var hyperlink = "<a href='javascript:void(0);' class=\"grey\" onclick=\"" + onclick + "return false;\">";
	
	raceNameUrl = "/Racing/Information/Results/DisplayDetailedView.aspx?State=" + jurisdiction + "&RacingCode=" + racingCode + "&RaceNumber=" + raceNumber + "&MeetingCode=" + meetingCode + "&FromDate=" + date +"&DisplayType=FinalDividendView#";
	
	var racingTypeImage = NtgRacingImageLookup[racingType];
	
	RowHtml += "<tr><td width=\"26\" align=\"right\"><img src=\"" + racingTypeImage + "\" width=\"20\" height=\"13\" alt=\"" + racingType + "\" /></td>";
	RowHtml += "<td height=\"19\" width=\"58\" align=\"right\"><span class=\"whitebold\">" + raceTime + "</span></td>";
	RowHtml += "<td><img src=\"/Shared/Images/Racing/en-au/gra_spacer.gif\" width=\"10\" height=\"1\" alt=\"\" /></td>";
	RowHtml += "<td align=\"left\" width=\"39\"><span class=\"greybold\">" + meetingCode + racingCode + displayRaceNumber + "</span></td>";
	RowHtml += "<td><img src=\"/Shared/Images/Racing/en-au/gra_spacer.gif\" width=\"10\" height=\"1\" alt=\"\" /></td>";
	RowHtml += "<td width=\"130\" align=\"left\">" + hyperlink + raceDescription + "</a></td>";
	RowHtml += "<td align=\"center\" width=\"20\">";
	RowHtml += "</td>";	
	RowHtml += "<td width=\"17\" align=\"center\">";
	audioOnClick = "playAudioFileFromRaceReplays('" +meetingDescription.toUpperCase()+ "', '" +raceTime+ "', '" +raceDescription+ "', '" +raceNumber+ "', '" + raceNameUrl + "', '" + escape(audioLink) + "', '" + racingType + "');";
	RowHtml += "<a onclick=\"" + audioOnClick + "return false;\" href=\"javascript:;\"><img border=\"0\" src=\"/Shared/Images/Media/en-au/icon_sound.gif\" width=\"6\" height=\"10\" alt=\"\" /></a>";
	RowHtml += "</td></tr>";			
	
	return RowHtml;
}


///////********************** END RENDERING ********************///////////



///////***************** CHANGE EVENT / BET TYPE ***************///////////


// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>RaceBet</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Changes the context of the main betting region to a new race using the 
/// default bet type.
/// </summary>
/// 
/// <returns>void</returns>
///
/// <param name="racingCode"></param>
/// <param name="meetingCode"></param>
/// <param name="date"></param>
/// <param name="raceNumber"></param>
// --------------------------------------------------------------------------------
/* private void */ function RaceBet( racingCode, meetingCode, date, raceNumber )
{
	//url eg "http://localhost/Racing/Betting/StandardBets/PlaceStandardBet.aspx?RacingCode=G&RaceNumber=01&MeetingCode=P&FromDate=2005-08-25T00%3a00%3a00"
	SetParentWindowUrl("/Racing/Betting/StandardBets/PlaceStandardBet.aspx?" + Jurisdiction + "&RacingCode=" + racingCode + "&MeetingCode=" + meetingCode + "&FromDate=" + date + "&RaceNumber=" + raceNumber);	
}

// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>RaceResults</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Changes the context of the main betting region to a new race using the 
/// default bet type.
/// </summary>
/// 
/// <returns>void</returns>
///
/// <param name="racingCode"></param>
/// <param name="meetingCode"></param>
/// <param name="date"></param>
/// <param name="raceNumber"></param>
// --------------------------------------------------------------------------------
/* private void */ function RaceResults( racingCode, meetingCode, date, raceNumber )
{
	SetParentWindowUrl("/Racing/Information/Results/DisplayDetailedView.aspx?" + Jurisdiction + "&RacingCode=" + racingCode + "&MeetingCode=" + meetingCode + "&FromDate=" + date + "&RaceNumber=" + raceNumber);	
}


// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>RaceResults</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Changes the context of the main betting region to a new race using the 
/// default bet type.
/// </summary>
/// 
/// <returns>void</returns>
///
/// <param name="racingCode"></param>
/// <param name="meetingCode"></param>
/// <param name="date"></param>
/// <param name="raceNumber"></param>
// --------------------------------------------------------------------------------
/* private void */ function RaceReplayResults( racingCode, meetingCode, date, raceNumber )
{
	SetParentWindowUrl("/Racing/Information/Results/DisplayDetailedView.aspx?" + Jurisdiction + "&RacingCode=" + racingCode + "&RaceNumber=" + raceNumber + "&MeetingCode=" + meetingCode + "&FromDate=" + date +"&DisplayType=FinalDividendView#");
}


// --------------------------------------------------------------------------------
/// <type>Method</type>
/// <name>ViewMedia</name>
/// <date>16.Aug.2005</date>
/// 
/// <summary>
/// Changes the context of the Media Player to the link provided
/// </summary>
/// 
/// <returns>void</returns>
///
/// <param name="mediaUrl"></param>
/// <param name="meetingCode"></param>
/// <param name="date"></param>
/// <param name="raceNumber"></param>
// --------------------------------------------------------------------------------
/* private void */ function PlayVideo(streamSpeed)
{
	videoPlaying = true;
	
	mcStoreStreamSpeed = streamSpeed;
	if (mcAuth)
	{
		McPlayCallBack();
	}
	else
	{
		OpenLogin();
	}
}

/* private void */ function McLoginPlayCallBack()
{
	//window.opener.document.location.reload();	
	setTimeout('window.opener.document.location.reload()', 200);
	McPlayCallBack();
	
	setTimeout('window.opener.blur()', 1000);
}

/* private void */ function McPlayCallBack()
{
	mcAuth = true;		
	CcRemoveCallback("XB_Login_Refresh");
	CcStopListener();
	
	if (mcStoreStreamSpeed == 300)
	{
		play300();
	}
	else
	{
		play128();
	}	
}

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

var preloadFlag = false;
function preloadImages() {
	initDivs();
	
	if (document.images) {
		btn_128k_ovr = newImage("/Shared/Images/Media/en-au/btn_128_on.gif");
		btn_300k_ovr = newImage("/Shared/Images/Media/en-au/btn_300_on.gif");
		btn_audio2ky_ovr = newImage("/Shared/Images/Media/en-au/btn_audioNsw_on.gif");
		btn_sport927_ovr = newImage("/Shared/Images/Media/en-au/btn_audioVic_on.gif");
		btn_fullscreen_ovr = newImage("/Shared/Images/Media/en-au/btn_full_on.gif");
		preloadFlag = true;		
	}
}

function enableFullScreen()
{
	if(videoPlaying == true)
	{
	   	document.getElementById('MediaPlayer1').DisplaySize = 3;
		if (document.getElementById('MediaPlayer1').playState == 3)
        {
            document.getElementById('MediaPlayer1').fullScreen = 'true';
        }
	}
}

function updatePlayer(action, height) {
	
	var myDiv = document.getElementById("MediaPlayerDiv");
		
	var valueStr = "<OBJECT ID='MediaPlayer1' WIDTH=352 HEIGHT='"+height+"' CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'	STANDBY='Loading Windows Media Player components...' TYPE='application/x-oleobject' codebase='http:/"+"/activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'>";
	valueStr += "<PARAM NAME='URL' VALUE='"+action+"'>";
	valueStr += "<PARAM NAME='fileName' VALUE='"+action+"'>";
	valueStr += "<PARAM name='autoStart' value='TRUE'>";
	valueStr += "<param name='EnableContextMenu' value='0'>";
	valueStr += "<param name='volume' value='50'>";
	valueStr += "<embed id='MediaPlayer1' name='MediaPlayer1' type='application/x-mplayer2' pluginspage='http://www.microsoft.com/Windows/MediaPlayer/' src='"+action+"' WIDTH=352 HEIGHT='"+height+"' autostart=1 showcontrols=1 ShowStatusBar=1></embed>";
	valueStr += "</OBJECT>";
	
	myDiv.innerHTML = valueStr;
}

function play300()
{
	updatePlayer(mcVideo300Url, 328);
		
	var myAudioDiv = document.getElementById(AudioDivId);
	var myLogoDiv = document.getElementById(LogoDivId);
			
	hideAudioDiv(myAudioDiv);
	hideLogoDiv(myLogoDiv);	
}

function play128()
{
    updatePlayer(mcVideo128Url, 328);

	var myAudioDiv = document.getElementById(AudioDivId);
	var myLogoDiv = document.getElementById(LogoDivId);
			
	hideAudioDiv(myAudioDiv);
	hideLogoDiv(myLogoDiv);		
}

function playAudioRadio()
{
	videoPlaying = false;
	
	var myAudioDiv = document.getElementById(AudioDivId);
			
	hideAudioDiv(myAudioDiv);
	
	var myLogoDiv = document.getElementById(LogoDivId);
			
	showLogoDiv(myLogoDiv);	
	
	updatePlayer(mcAudioStreamUrl, 63);
}

function playAudioFile()
{
	videoPlaying = false;
	
	racingTypeAudioReplayImage = McAudioReplayImageLookup[mcRaceType];
		
	// Meeting Name	
	var meetingName = document.getElementById('DisplayAudioDetails1_LabelMeetingName');	
	
	meetingName.innerHTML = mcMeetingName; 
		
	// Race Time
	var raceTime = document.getElementById('DisplayAudioDetails1_LabelRaceTime');	
	
	raceTime.innerHTML = mcRaceTime; 
		
	// Race Name
	var raceName = document.getElementById('DisplayAudioDetails1_HyperLinkRaceName');	
	
	raceName.innerHTML = mcRaceName; 
		
	// Race Number
	var raceNumber = document.getElementById('DisplayAudioDetails1_LabelRaceNumber');	
	
	raceNumber.innerHTML = mcRaceNumber; 
					
	var myLogoDiv = document.getElementById(LogoDivId);
			
	hideLogoDiv(myLogoDiv);
	
	var myAudioDiv = document.getElementById(AudioDivId);
			
	showAudioDiv(myAudioDiv);
	
	var myRaceReplayImage = document.getElementById('ReplayRaceIcon');
	myRaceReplayImage.src = McAudioReplayImageLookup[mcRaceType];			
}

function playAudioFileFromRaceReplays(mcMeetingName, mcRaceTime, mcRaceName, mcRaceNumber, mcRaceNameUrl, mcMediaUrl, mcRaceType)
{
	videoPlaying = false;
	
	racingTypeAudioReplayImage = McAudioReplayImageLookup[mcRaceType];
	
	// Meeting Name	
	var meetingName = document.getElementById('DisplayAudioDetails1_LabelMeetingName');	
		
	meetingName.innerHTML = mcMeetingName;	
	
	// Race Time
	var raceTime = document.getElementById('DisplayAudioDetails1_LabelRaceTime');	
	
	raceTime.innerHTML = mcRaceTime; 
		
	// Race Name
	var raceName = document.getElementById('DisplayAudioDetails1_HyperLinkRaceName');	
		
    // Set URL 
	raceNameUrl = mcRaceNameUrl;	
		
	raceName.innerHTML = mcRaceName; 
		
	// Race Number
	var raceNumber = document.getElementById('DisplayAudioDetails1_LabelRaceNumber');	
	
	raceNumber.innerHTML = mcRaceNumber; 
					
	var myLogoDiv = document.getElementById(LogoDivId);
			
	hideLogoDiv(myLogoDiv);
	
	var myAudioDiv = document.getElementById(AudioDivId);
			
	showAudioDiv(myAudioDiv);	
	
	updatePlayer(mcMediaUrl, 63);
	
	var myRaceReplayImage = document.getElementById('ReplayRaceIcon');
	myRaceReplayImage.src = McAudioReplayImageLookup[mcRaceType];	
	
	// Stop and start the player to ensure it picks up the replay
	// from the media server
	document.getElementById('MediaPlayer1').controls.stop();
	document.getElementById('MediaPlayer1').controls.play();
}

function popup(theURL,winName,features) {
  window.open(theURL,winName,features);
}


function hideAudioDiv(myDiv){
	myDiv.style.display = "none";
}

function showAudioDiv(myDiv){
	myDiv.style.display = "";
}

function hideLogoDiv(myDiv){
	myDiv.style.display = "none";
}

function showLogoDiv(myDiv){
	myDiv.style.display = "";
}

function initDivs()
{
	if(mcIsReplay == '1')
	{
		playAudioFile();
	}
	else
	{
		var myAudioDiv = document.getElementById(AudioDivId);

		hideAudioDiv(myAudioDiv);
	}
}

function OpenMediaCentre(url, popupType, height, width)
{
	var newWin = window.open(url, popupType,"height="+height+",width="+width+",null,null,screenX=10,screenY=25,left=10,top=25,scrollbars=no,directories=no,toolbars=no,menubar=no,dependent=no,status=yes,resizable=no");
	newWin.focus();
}


function SetParentWindowUrl( _url )
{
  var pWin = window.opener;
  if (pWin != null && ! pWin.closed)
  {
    pWin.location.href = _url;
    pWin.focus();
  }
  else
  {
    window.open( _url );
  }      
}