Golden State Of Mind - Warriors vs. Grizzlies coverage: Second to last game of the regular season!"UNSTOPPABLE BABY!" - Warriors rookie Marc Jackson to the Mavs' bench, after a lay-up during a 29-point loss (2000)https://cdn.vox-cdn.com/community_logos/50563/gsom-fav.png2015-04-14T07:02:03-07:00http://www.goldenstateofmind.com/rss/stream/81612302015-04-14T07:02:03-07:002015-04-14T07:02:03-07:00Klay Thompson was unguardable against Memphis<img src="https://cdn.vox-cdn.com/thumbor/lgy_QHvjlLYf4iTuqN96jEe4TAc=/410x410/cdn.vox-cdn.com/fan_shot_images/382132/ezgif.com-resize__3_.0.gif" />
<div class="source source-img"><p><p>These were two of the 26 points that Klay scored in the 2nd quarter against the Grizzlies. Memphis only scored 25 in the quarter as a team.</p></p></div>
https://www.goldenstateofmind.com/2015/4/14/8410561/klay-thompson-was-unguardable-against-memphisChris Faulkner2015-04-13T22:31:19-07:002015-04-13T22:31:19-07:00Game Links #81: Warriors 111 vs Grizzlies 107
<figure>
<img alt="" src="https://cdn.vox-cdn.com/thumbor/Nj5VTnX4-W1JbvIYwDSKClr3E5w=/0x24:275x207/1310x873/cdn.vox-cdn.com/uploads/chorus_image/image/46116680/cat_in_garbage_can.0.0.jpg" />
</figure>
<style type="text/css">
h2.m-entry__title { font-size:20px; font-family:Arial,Helvetica,sans-serif; color:rgb(0,0,0); }
img.vox-lazy-load { display:none; }
div.m-entry__photo__caption { display:none; }
div.m-entry__upper-social { display:none; }
div.m-breaker-next-groups { display:none; }
div.m-breaker-next-read { display:none; }
.m-breaker-featured-poll h4 { font-size:18px; font-family:Arial,Helvetica,sans-serif; color:#000000; font-weight:bold; margin-left:0px; margin-right:0px; }
.m-poll-body li { font-size:14px; font-family:Arial,Helvetica,sans-serif; color:#000000; }
.m-poll-body__pct-count { font-size:30px; }
div.YAD { display:none; }
</style>
<script type="text/javascript">
//////// COOKIE FUNCTIONS ////////
//cookie_key - required.
//default_value - optional.
function gsomGetCookie(cookie_key, default_value)
{
var cookiekey_start_index = document.cookie.indexOf(" " + cookie_key + "=");
if (cookiekey_start_index == -1)
//If the key could not be found, this could be the first key of the entire cookie string.
//Do a search without the preceding space.
cookiekey_start_index = document.cookie.indexOf(cookie_key + "=");
if (cookiekey_start_index == -1)
//The cookie key could not be found.
return default_value;
//Find where the key's value starts and ends. The key's value is after the = and ends at a ;
var cookievalue_start_index = document.cookie.indexOf("=", cookiekey_start_index) + 1;
var cookievalue_end_index = document.cookie.indexOf(";", cookievalue_start_index);
//If the ending ; could not be found, this could be the last key/value in the entire cookie string.
//So the end of the value is at the end of the entire cookie string.
if (cookievalue_end_index == -1)
cookievalue_end_index = document.cookie.length;
//Now extract the value for the requested key.
return unescape(document.cookie.substring(cookievalue_start_index, cookievalue_end_index));
}
//cookie_key - required
//cookie_value - required.
//expire_days_from_now - optional. If null, the cookie expires at the end of the session.
function gsomSetCookie(cookie_key, cookie_value, expire_days_from_now)
{
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() + expire_days_from_now);
var cookie_value_full = escape(cookie_value)
+ ((expire_days_from_now == null) ? "" : "; expires=" + expireDate.toUTCString())
+ "; path=/";
document.cookie = cookie_key + "=" + cookie_value_full;
}
function gsomDeleteCookie(cookie_key)
{
//To delete the cookie, we set the expire date to yesterday.
gsomSetCookie(cookie_key, "", -1);
}
//////// USER SETTINGS ////////
var gsomInputMode = gsomGetCookie("gsomInputMode" , "mouse");
var gsomSoundCloudMode = gsomGetCookie("gsomSoundCloudMode" , "html5");
var gsomUseScrollButtonsMode = gsomGetCookie("gsomUseScrollButtonsMode", "off" );
var gsomFontFamilyMode = gsomGetCookie("gsomFontFamilyMode" , "Arial");
var gsomFontFamilyUserFont = gsomGetCookie("gsomFontFamilyUserFont" , "" );
var gsomFontSizeMode = gsomGetCookie("gsomFontSizeMode" , "13.5" );
var gsomFontSizeMin = 10, gsomFontSizeMax = 20;
//Ensure settings have a valid value.
if (gsomInputMode != 'mouse' && gsomInputMode != 'touch')
gsomInputMode = 'mouse';
if (gsomSoundCloudMode != 'flash' && gsomSoundCloudMode != 'html5')
gsomSoundCloudMode = 'html5';
if (gsomUseScrollButtonsMode != 'off' && gsomUseScrollButtonsMode != 'on')
gsomUseScrollButtonsMode = 'off';
if (gsomFontFamilyMode != 'Arial' && gsomFontFamilyMode != 'Gotham Narrow' && gsomFontFamilyMode != 'Verdana' && gsomFontFamilyMode != 'Lucida Grande' && gsomFontFamilyMode != '__userfont__')
gsomFontFamilyMode = 'Arial';
if (gsomFontSizeMode < gsomFontSizeMin) gsomFontSizeMode = gsomFontSizeMin;
else if (gsomFontSizeMode > gsomFontSizeMax) gsomFontSizeMode = gsomFontSizeMax;
//////// FUNCTIONS FOR DYNAMICALLY GENERATING HTML PAGE ELEMENTS ////////
var strNoDesc = '--------';
var gsomFontSizePx = gsomFontSizeMode + 'px';
var gsomFontFamilies;
if (gsomFontFamilyMode == '__userfont__') gsomFontFamilies = "'" + gsomFontFamilyUserFont + "'";
//Special case for Gotham Narrow, which comes from two fonts:
//"Gotham Narrow SSm A", "Gotham Narrow SSm B"
else if (gsomFontFamilyMode == 'Gotham Narrow') gsomFontFamilies = "'Gotham Narrow SSm A','Gotham Narrow SSm B'";
else gsomFontFamilies = "'" + gsomFontFamilyMode + "'";
//Append the fallback fonts if the above fonts aren't supported.
gsomFontFamilies = gsomFontFamilies + ",Arial,Helvetica,sans-serif";
//Each video info object contains different info depending on the source. For example, Youtube and CSN
//contains only one height, but SoundCloud contains two heights, depending on if the user has selected
//the flash or HTML5 player version.
//This function returns an object containing the info needed to fill in the video player list.
//They are: iframeID iframeURL iframeHeight descString descURL
function gsomUtilConvertVideoInfoToIframeInfo(videoInfo)
{
var videoPlayerInfo = new Object();
if (videoInfo.type == 'csn')
{
videoPlayerInfo.iframeID = videoInfo.csn_iframeID;
videoPlayerInfo.iframeURL = videoInfo.csn_iframeURL;
videoPlayerInfo.iframeHeight = videoInfo.csn_iframeHeight;
videoPlayerInfo.descString = "CSN: " + videoInfo.csn_descString;
videoPlayerInfo.descURL = videoInfo.csn_descURL;
}
else if (videoInfo.type == 'youtube')
{
videoPlayerInfo.iframeID = videoInfo.youtube_iframeID;
videoPlayerInfo.iframeURL = videoInfo.youtube_iframeURL;
videoPlayerInfo.iframeHeight = videoInfo.youtube_iframeHeight;
videoPlayerInfo.descString = "Youtube: " + videoInfo.youtube_descString;
videoPlayerInfo.descURL = videoInfo.youtube_descURL;
}
else if (videoInfo.type == 'mobli')
{
videoPlayerInfo.iframeID = videoInfo.mobli_iframeID;
videoPlayerInfo.iframeURL = videoInfo.mobli_iframeURL;
videoPlayerInfo.iframeHeight = videoInfo.mobli_iframeHeight;
videoPlayerInfo.descString = "Mobli: " + videoInfo.mobli_descString;
videoPlayerInfo.descURL = videoInfo.mobli_descURL;
}
else if (videoInfo.type == 'tout')
{
videoPlayerInfo.iframeID = videoInfo.tout_iframeID;
videoPlayerInfo.iframeURL = videoInfo.tout_iframeURL;
videoPlayerInfo.iframeHeight = videoInfo.tout_iframeHeight;
videoPlayerInfo.descString = "Tout: " + videoInfo.tout_descString;
videoPlayerInfo.descURL = videoInfo.tout_descURL;
}
else if (videoInfo.type == 'soundcloud')
{
var iframeURL = gsomSoundCloudMode == 'flash'
? 'https://player.soundcloud.com/player.swf?url=' + videoInfo.soundcloud_baseURL
: 'https://w.soundcloud.com/player/?url=' + videoInfo.soundcloud_baseURL + '&show_artwork=false';
var iframeHeight = gsomSoundCloudMode == 'flash'
? videoInfo.soundcloud_iframeHeight_flash
: videoInfo.soundcloud_iframeHeight_html5;
videoPlayerInfo.iframeID = videoInfo.soundcloud_iframeID;
videoPlayerInfo.iframeURL = iframeURL;
videoPlayerInfo.iframeHeight = iframeHeight;
videoPlayerInfo.descString = "SoundCloud: " + videoInfo.soundcloud_descString;
videoPlayerInfo.descURL = videoInfo.soundcloud_descURL;
}
return videoPlayerInfo;
}
function gsomDocWriteVideoListPlayerMouse(videosArray, iframeID, bPrintInstructions)
{
if (bPrintInstructions)
{
document.write('<p class="gsom">');
document.write('- Click on a video description to play it.<br>');
document.write('</p>');
}
var divID = iframeID + ".div";
if (gsomUseScrollButtonsMode == 'on')
{
//Add the scroll up/left buttons.
document.write( '<button style="width:50%;" onclick="gsomDivScrollUpDown(\''
+ divID
+ '\', 1)">▲</button>');
document.write( '<button style="width:50%;" onclick="gsomDivScrollLeftRight(\''
+ divID
+ '\', 1)">◀</button>');
}
//Write the video player list.
document.write( '<div id="'
+ divID
+ '" class="" style="overflow:auto; min-height:100px; max-height:200px; border-style:solid; border-width:1px;">');
document.write('<table class="gsom" style="margin:0px 0px 0px 0px;">');
var iRow = 0;
for (var i = 0; i < videosArray.length; i++)
{
var thisVideo = gsomUtilConvertVideoInfoToIframeInfo(videosArray[i]);
if (thisVideo.iframeID != iframeID) continue;
iRow++;
document.write( '<tr class="gsom-zebra-tr" style="cursor:pointer;" ');
document.write('onmouseover="gsomVideoPlayerTrOnMouseOverOut(this, 1)" onmouseout="gsomVideoPlayerTrOnMouseOverOut(this, 0)" ');
document.write( 'onclick="gsomShowVideoAndDesc('
+ '\'' + thisVideo.iframeID + '\','
+ '\'' + thisVideo.iframeURL + '\','
+ '\'' + thisVideo.iframeHeight + '\','
+ '\'' + escape(thisVideo.descString) + '\','
+ '\'' + thisVideo.descURL + '\')">');
document.write('<td class="" style="text-align:left; padding:0px 0px 0px 2px; white-space: nowrap;">' + thisVideo.descString + '</td>');
document.write('</tr>');
}
document.write('</table>');
document.write('</div>');
if (gsomUseScrollButtonsMode == 'on')
{
//Add the scroll down/right buttons.
document.write( '<button style="width:50%;" onclick="gsomDivScrollUpDown(\''
+ divID
+ '\', 0)">▼</button>');
document.write( '<button style="width:50%;" onclick="gsomDivScrollLeftRight(\''
+ divID
+ '\', 0)">▶</button>');
}
//Write the Off button/video description. The Off button is disabled until the user selects a video.
document.write('<table class="gsom" style="margin:5px 0px 5px 0px;">');
document.write('<tr class="" style="line-height:1.6em; height:3.2em;">');
document.write('<td class="" style="text-align:left; width: 50px; padding:0px 0px 0px 2px;"><button id="' + iframeID + '.offbutton" onclick="gsomShowVideoAndDesc(\'' + iframeID + '\', \'about:blank\', \'0px\', null)" disabled>Off</button></td>');
document.write('<td class="" style="text-align:center; padding:0px 0px 0px 2px;" id="' + iframeID + '.captioncell">' + strNoDesc + '</td>');
document.write('</tr>');
document.write('</table>');
//Write the video player iframe.
document.write('<iframe class="" style="width:100%; height:0px; border-style:solid; border-width:0px;" id="' + iframeID + '" src="about:blank" allowfullscreen></iframe>');
}
function gsomDocWriteVideoListPlayerTouch(videosArray, iframeID, bPrintInstructions)
{
if (bPrintInstructions)
{
document.write('<p class="gsom">');
document.write('- Tap on a video description box to play it.<br>');
document.write('</p>');
}
var divID = iframeID + ".div";
if (gsomUseScrollButtonsMode == 'on')
{
//Add the scroll up button.
document.write( '<button style="width:100%;" onclick="gsomDivScrollUpDown(\''
+ divID
+ '\', 1)">▲</button>');
}
//Write the video player list as a two column list in a table.
document.write( '<div id="'
+ divID
+ '" class="" style="overflow:auto; max-height:11em; border-style:solid; border-width:1px;">');
document.write('<table class="gsom" style="margin:0px 0px 0px 0px;">');
//iNextColumn is a zero-based number indicating which column the next video will be placed in.
var iNextColumn = 0, iNumColumns = 2;
for (var i = 0; i < videosArray.length; i++)
{
var thisVideo = gsomUtilConvertVideoInfoToIframeInfo(videosArray[i]);
if (thisVideo.iframeID != iframeID) continue;
//If iNextColumn is 0, we are about to start a new row.
if (iNextColumn == 0)
document.write('<tr class="" style="height:5em;">');
document.write('<td style="text-align:left; padding:0px 0px 0px 2px; border:1px dotted black;"');
document.write( 'onclick="gsomShowVideoAndDesc('
+ '\'' + thisVideo.iframeID + '\','
+ '\'' + thisVideo.iframeURL + '\','
+ '\'' + thisVideo.iframeHeight + '\','
+ '\'' + escape(thisVideo.descString) + '\','
+ '\'' + thisVideo.descURL + '\')">');
document.write(thisVideo.descString + '</td>');
//Increment to the next column, or drop back to column 0 if we have filled in the number of columns for this row.
iNextColumn = (iNextColumn + 1) % iNumColumns;
//If we have dropped back to column 0, we have completed this row.
if (iNextColumn == 0)
document.write('</tr>');
}
//If we didn't complete a row, and we have no more videos, the closing table row tag would not have been written above.
if (iNextColumn != 0)
document.write('</tr>');
document.write('</table>');
document.write('</div>');
if (gsomUseScrollButtonsMode == 'on')
{
//Add the scroll down button.
document.write( '<button style="width:100%;" onclick="gsomDivScrollUpDown(\''
+ divID
+ '\', 0)">▼</button>');
}
//Write the Off button/video description. The Off button is disabled until the user selects a video.
document.write('<table class="gsom" style="margin:5px 0px 5px 0px;">');
document.write('<tr class="" style="line-height:1.6em; height:3.2em;">');
document.write('<td class="" style="text-align:left; width: 50px; padding:0px 0px 0px 2px;"><button id="' + iframeID + '.offbutton" style="width:100%; margin:0px; padding:5px 0px;" onclick="gsomShowVideoAndDesc(\'' + iframeID + '\', \'about:blank\', \'0px\', null)" disabled><br>Off<br><br></button></td>');
document.write('<td class="" style="text-align:center; padding:0px 0px 0px 2px;" id="' + iframeID + '.captioncell">' + strNoDesc + '</td>');
document.write('</tr>');
document.write('</table>');
//Write the video player iframe.
document.write('<iframe class="" style="width:100%; height:0px; border-style:solid; border-width:0px;" id="' + iframeID + '" src="about:blank" allowfullscreen></iframe>');
}
function gsomDocWriteVideoListPlayer(videosArray, iframeID, bPrintInstructions)
{
var bAtLeastOneVideo = false;
for (var i = 0; i < videosArray.length; i++)
{
var thisVideo = gsomUtilConvertVideoInfoToIframeInfo(videosArray[i]);
if (thisVideo.iframeID == iframeID)
{
bAtLeastOneVideo = true;
break;
}
}
if (!bAtLeastOneVideo)
{
document.write('<p class="gsom">');
document.write('- No videos found.<br>');
document.write('</p>');
return;
}
if (gsomInputMode == 'touch') gsomDocWriteVideoListPlayerTouch(videosArray, iframeID, bPrintInstructions);
else gsomDocWriteVideoListPlayerMouse(videosArray, iframeID, bPrintInstructions);
}
function gsomDocWriteSingleVideoPlayer(iframeID, iframeURL, iframeHeight, descString, descURL)
{
var strShow = gsomInputMode == 'touch' ? '<br>Show<br><br>' : 'Show';
//Write the Show/Off button and video description.
document.write('<table class="gsom" style="margin:5px 0px 5px 0px;">');
document.write('<tr class="" style="line-height:1.6em; height:3.2em;">');
document.write( '<td class="" style="text-align:left; width: 50px; padding:0px 0px 0px 2px;"><button style="width:100%; margin:0px; padding:5px 0px;" id="'
+ iframeID + ".button"
+ '" onclick="gsomShowHideSingleVideo(\''
+ iframeID + ".button" + '\', \''
+ iframeID + '\', \''
+ iframeURL + '\', \''
+ iframeHeight + '\')">' + strShow + '</button></td>');
document.write( '<td class="" style="text-align:center; padding:0px 0px 0px 2px;">'
+ '<em><a class="gsom" href="' + descURL + '">' + unescape(descString) + '</a></em>'
+ '</td>');
document.write('</tr>');
document.write('</table>');
//Write the video player iframe.
document.write('<iframe class="" style="width:100%; height:0px; border-style:solid; border-width:0px;" id="' + iframeID + '" src="about:blank" allowfullscreen></iframe>');
}
function gsomDocWriteSingleSoundCloudPlayer(iframeID, baseURL, iframeHeightflash, iframeHeighthtml5, descString, descURL)
{
var soundCloundInfo = new Object();
soundCloundInfo.type = 'soundcloud';
soundCloundInfo.soundcloud_iframeID = iframeID;
soundCloundInfo.soundcloud_baseURL = baseURL;
soundCloundInfo.soundcloud_iframeHeight_flash = iframeHeightflash;
soundCloundInfo.soundcloud_iframeHeight_html5 = iframeHeighthtml5;
soundCloundInfo.soundcloud_descString = descString;
soundCloundInfo.soundcloud_descURL = descURL;
var thisSoundCloud = gsomUtilConvertVideoInfoToIframeInfo(soundCloundInfo);
gsomDocWriteSingleVideoPlayer(thisSoundCloud.iframeID, thisSoundCloud.iframeURL, thisSoundCloud.iframeHeight, escape(thisSoundCloud.descString), thisSoundCloud.descURL);
}
function gsomDocWriteRadioAudioMouse(radioAudioArray)
{
document.write('<p class="gsom">');
document.write('- KNBR, 95.7 FM audio.<br>');
for (var i = 0; i < radioAudioArray.length; i++)
{
var thisRadioAudio = radioAudioArray[i];
document.write( thisRadioAudio.length + ': <a class="gsom" href="'
+ thisRadioAudio.URL + '">'
+ thisRadioAudio.descString + '</a><br>');
}
document.write('</p>');
}
function gsomDocWriteRadioAudioTouch(radioAudioArray)
{
document.write('<p class="gsom">');
document.write('- KNBR, 95.7 FM audio.<br>');
document.write('</p>');
var divID = "KNBR-957-audio.div"
if (gsomUseScrollButtonsMode == 'on')
{
//Add the scroll up button.
document.write( '<button style="width:100%;" onclick="gsomDivScrollUpDown(\''
+ divID
+ '\', 1)">▲</button>');
}
//Write the audio list as a two column list in a table.
document.write('<div id="' + divID + '" style="overflow:auto; max-height:11em; border-style:solid; border-width:1px;">');
document.write('<table class="gsom" style="margin:0px 0px 0px 0px;">');
//iNextColumn is a zero-based number indicating which column the next video will be placed in.
var iNextColumn = 0, iNumColumns = 2;
for (var i = 0; i < radioAudioArray.length; i++)
{
var thisRadioAudio = radioAudioArray[i];
//If iNextColumn is 0, we are about to start a new row.
if (iNextColumn == 0)
document.write('<tr class="" style="height:5em;">');
document.write('<td style="text-align:left; padding:0px 0px 0px 2px; border:1px dotted black;">');
//Using 'display:inline-table' causes the anchor tag to fill the table cell, making any
//part of the cell clickable/tappable. But it doesn't center the text vertically.
//Adding a span around the text with 'display:table-cell; vertical-align:middle;' will center
//the text vertically inside the anchor tag.
document.write('<a class="gsom" style="display:inline-table;width:100%; height:100%;" href="' + thisRadioAudio.URL + '">');
document.write('<span style="display:table-cell; vertical-align:middle;">');
document.write(thisRadioAudio.length + ': ' + thisRadioAudio.descString);
document.write('</span></a></td>');
//Increment to the next column, or drop back to column 0 if we have filled in the number of columns for this row.
iNextColumn = (iNextColumn + 1) % iNumColumns;
//If we have dropped back to column 0, we have completed this row.
if (iNextColumn == 0)
document.write('</tr>');
}
//If we didn't complete a row, and we have no more videos, the closing table row tag would not have been written above.
if (iNextColumn != 0)
document.write('</tr>');
document.write('</table>');
document.write('</div>');
if (gsomUseScrollButtonsMode == 'on')
{
//Add the scroll down button.
document.write( '<button style="width:100%;" onclick="gsomDivScrollUpDown(\''
+ divID
+ '\', 0)">▼</button>');
}
//Make sure there's at least one line of space after the div and before the next element.
document.write('<br>');
}
function gsomDocWriteRadioAudio(radioAudioArray)
{
if (radioAudioArray.length == 0)
{
document.write('<p class="gsom">');
document.write('- KNBR, 95.7 FM audio.<br>');
document.write('No radio links found.<br>');
document.write('</p>');
return;
}
if (gsomInputMode == 'touch') gsomDocWriteRadioAudioTouch(radioAudioArray);
else gsomDocWriteRadioAudioMouse(radioAudioArray);
}
function gsomDocWriteNBAcomVideosMouse(NBAcomVideosArray, recapURL)
{
document.write('<p class="gsom">');
document.write('- Recap and highlights from <a class="gsom" href="' + recapURL + '">nba.com\'s game page</a>:<br>');
if (NBAcomVideosArray.length == 0)
{
document.write('No links found.<br>');
document.write('</p>');
return;
}
for (var i = 0; i < NBAcomVideosArray.length; i++)
{
var thisNBAcomVideo = NBAcomVideosArray[i];
document.write( '<a class="gsom" href="'
+ thisNBAcomVideo.URL + '">'
+ thisNBAcomVideo.descString + '</a><br>');
}
document.write('</p>');
}
function gsomDocWriteNBAcomVideosTouch(NBAcomVideosArray, recapURL)
{
document.write('<p class="gsom">');
document.write('- Recap and highlights from <a class="gsom" href="' + recapURL + '">nba.com\'s game page</a>:<br>');
if (NBAcomVideosArray.length == 0)
{
document.write('No links found.<br>');
document.write('</p>');
return;
}
document.write('</p>');
var divID = "nbacom-video.div"
if (gsomUseScrollButtonsMode == 'on')
{
//Add the scroll up button.
document.write( '<button style="width:100%;" onclick="gsomDivScrollUpDown(\''
+ divID
+ '\', 1)">▲</button>');
}
//Write the video list as a two column list in a table.
document.write('<div id="' + divID + '" style="overflow:auto; max-height:11em; border-style:solid; border-width:1px;">');
document.write('<table class="gsom" style="margin:0px 0px 0px 0px;">');
for (var i = 0; i < NBAcomVideosArray.length; i+=2)
{
document.write('<tr class="" style="height:5em;">');
for(var j = i; j < i + 2 && j < NBAcomVideosArray.length; j++)
{
var thisNBAcomVideo = NBAcomVideosArray[j];
document.write('<td style="text-align:left; padding:0px 0px 0px 2px; border:1px dotted black;">');
//Using 'display:inline-table' causes the anchor tag to fill the table cell, making any
//part of the cell clickable/tappable. But it doesn't center the text vertically.
//Adding a span around the text with 'display:table-cell; vertical-align:middle;' will center
//the text vertically inside the anchor tag.
document.write('<a class="gsom" style="display:inline-table;width:100%; height:100%;" href="' + thisNBAcomVideo.URL + '">');
document.write('<span style="display:table-cell; vertical-align:middle;">');
document.write(thisNBAcomVideo.descString);
document.write('</span></a></td>');
}
document.write('</tr>');
}
document.write('</table>');
document.write('</div>');
if (gsomUseScrollButtonsMode == 'on')
{
//Add the scroll down button.
document.write( '<button style="width:100%;" onclick="gsomDivScrollUpDown(\''
+ divID
+ '\', 0)">▼</button>');
}
}
function gsomDocWriteNBAcomVideos(NBAcomVideosArray, recapURL)
{
if (gsomInputMode == 'touch') gsomDocWriteNBAcomVideosTouch(NBAcomVideosArray, recapURL);
else gsomDocWriteNBAcomVideosMouse(NBAcomVideosArray, recapURL);
}
//////// EVENT FUNCTIONS ////////
function gsomVideoPlayerTrOnMouseOverOut(trElem, bMouseOver)
{
trElem.style.backgroundColor = bMouseOver ? '#8ce448' : '';
}
function gsomShowURLInIFrame(iframeID, iframeURL, iframeHeight)
{
var iframeElem = document.getElementById(iframeID);
if (iframeElem == null) return;
iframeElem.src = iframeURL;
iframeElem.style.height = iframeHeight;
if (iframeURL != 'about:blank')
{
//After the user clicks on a URL to be shown in this iframe, we want to scroll the iframe into view.
//But we don't want to do any scrolling unless we're sure the iframe is NOT in view.
//First, we need to determine what part of the page is visible to the user. If the page is 9000 pixels tall,
//the user is very likely only seeing a fraction of that, say the 2001th - 3000th pixel rows, thus, a viewing
//height of 1000 pixels. This also means that there are 2000 pixel rows ABOVE the current view and 6000 pixel rows
//BELOW the current view.
//On some browsers, document.documentElement.scrollTop (which is the "html" element's scrollTop)
//tells us how many pixel rows are ABOVE the current view. On other browsers, the document.body.scrollTop
//(which is the "body" element's scrollTop) tells us this.
//We'll need to support both methods.
//In the above example, document.documentElement.scrollTop (or document.body.scrollTop) would be 2000, so
//add 1 to get the 2001th row, currently the first viewable pixel row.
var viewTopPixelRow = (document.documentElement.scrollTop > 0 ?
document.documentElement.scrollTop : document.body.scrollTop)
+ 1;
//In the above example, document.documentElement.clientHeight would be 1000, representing the viewable height.
var viewBottomPixelRow = (document.documentElement.scrollTop > 0 ?
document.documentElement.scrollTop : document.body.scrollTop)
+ document.documentElement.clientHeight;
//Next, we determine the vertical position of the iframe within the page. It seems that we can
//do this by adding all of the offsetTops of the iframe element and its parents.
var iframeTopPos = iframeElem.offsetTop;
var parentElem = iframeElem.offsetParent;
while (parentElem)
{
iframeTopPos += parentElem.offsetTop;
parentElem = parentElem.offsetParent;
}
//The bottom position of the iframe is the top position + its height.
var iframeBottomPos = iframeTopPos + iframeElem.clientHeight;
//Since the clickable list of videos is currently ABOVE the iframe, it is very unlikely that the iframe is somehow
//ABOVE the viewing area. So we only need to check if the iframe is BELOW the viewable area.
if (iframeBottomPos > viewBottomPixelRow)
{
//Add 10 pixels to the scroll, so there's a small amount of "padding" visible below the iframe.
//We don't know which element the browser uses for scrolling the entire page, so we increment both.
var iScrollAmount = iframeBottomPos - viewBottomPixelRow + 10;
document.documentElement.scrollTop += iScrollAmount;
document.body .scrollTop += iScrollAmount;
}
}
}
function gsomShowVideoAndDesc(iframeID, iframeURL, iframeHeight, descString, descURL)
{
gsomShowURLInIFrame(iframeID, iframeURL, iframeHeight);
var videoPlayerOffButton = document.getElementById(iframeID + ".offbutton");
var videoPlayerCaptionCell = document.getElementById(iframeID + ".captioncell");
if (videoPlayerOffButton == null || videoPlayerCaptionCell == null) return;
if (iframeURL == 'about:blank')
{
videoPlayerOffButton.disabled = true;
videoPlayerCaptionCell.innerHTML = strNoDesc;
}
else
{
videoPlayerOffButton.disabled = false;
videoPlayerCaptionCell.innerHTML = '<em><a class="gsom" href="' + descURL + '">' + unescape(descString) + '</a></em>';
}
}
//The iframeURL and iframeHeight are values used when SHOWING the single video.
//If hiding, about:blank and a height of 0 is used.
function gsomShowHideSingleVideo(buttonID, iframeID, iframeURL, iframeHeight)
{
var buttonElem = document.getElementById(buttonID);
if (buttonElem == null) return;
if (buttonElem.innerHTML.indexOf("Off") >= 0)
{
gsomShowURLInIFrame(iframeID, 'about:blank', '0px');
buttonElem.innerHTML = gsomInputMode == 'touch' ? '<br>Show<br><br>' : 'Show';
}
else
{
gsomShowURLInIFrame(iframeID, iframeURL, iframeHeight);
buttonElem.innerHTML = gsomInputMode == 'touch' ? '<br>Off<br><br>' : 'Off';
}
}
//Scroll the given div ID up or down.
//bUp - 1 scrolls up, all other values scroll down
function gsomDivScrollUpDown(divID, bUp)
{
var divElem = document.getElementById(divID);
if (divElem == null) return;
var iScrollAmount = bUp == 1 ? -50 : 50;
//Use timers and small scroll steps to produce a "smooth" scrolling effect instead
//of "jumping" to scroll.
var iScrollNumSteps = 5;
var iScollStepSize = iScrollAmount / iScrollNumSteps;
for (var i = 0; i < iScrollNumSteps; i++)
setTimeout(function() { divElem.scrollTop += iScollStepSize; }, i*40);
}
//Scroll the given div ID left or right.
//bLeft - 1 scrolls left, all other values scroll right
function gsomDivScrollLeftRight(divID, bLeft)
{
var divElem = document.getElementById(divID);
if (divElem == null) return;
var iScrollAmount = bLeft == 1 ? -100 : 100;
//Use timers and small scroll steps to produce a "smooth" scrolling effect instead
//of "jumping" to scroll.
var iScrollNumSteps = 5;
var iScollStepSize = iScrollAmount / iScrollNumSteps;
for (var i = 0; i < iScrollNumSteps; i++)
setTimeout(function() { divElem.scrollLeft += iScollStepSize; }, i*40);
}
function gsomInitSettingsSection()
{
var radioBtnElems = document.getElementsByName('radiobtn_gsomInputMode');
for (var i = 0; i < radioBtnElems.length; i++)
{
var thisRadioBtn = radioBtnElems[i];
if (thisRadioBtn.value == gsomInputMode)
{
thisRadioBtn.checked = true;
break;
}
}
radioBtnElems = document.getElementsByName('radiobtn_gsomSoundCloudMode');
for (var i = 0; i < radioBtnElems.length; i++)
{
var thisRadioBtn = radioBtnElems[i];
if (thisRadioBtn.value == gsomSoundCloudMode)
{
thisRadioBtn.checked = true;
break;
}
}
radioBtnElems = document.getElementsByName('radiobtn_gsomUseScrollButtonsMode');
for (var i=0; i < radioBtnElems.length; i++)
{
var thisRadioBtn = radioBtnElems[i];
if (thisRadioBtn.value == gsomUseScrollButtonsMode)
{
thisRadioBtn.checked = true;
break;
}
}
radioBtnElems = document.getElementsByName('radiobtn_gsomFontFamilyMode');
for (var i = 0; i < radioBtnElems.length; i++)
{
var thisRadioBtn = radioBtnElems[i];
if (thisRadioBtn.value == gsomFontFamilyMode)
{
thisRadioBtn.checked = true;
break;
}
}
//Also initialize the user entered font text box.
var textboxElem = document.getElementById('text_gsomFontFamilyUserFont');
if (textboxElem != null)
textboxElem.value = gsomFontFamilyUserFont;
var spanFontSizeElem = document.getElementById('span_gsomFontSizeMode');
if (spanFontSizeElem != null)
spanFontSizeElem.innerHTML = gsomFontSizeMode;
}
function gsomSaveSettingsSection()
{
var radioBtnElems = document.getElementsByName('radiobtn_gsomInputMode');
for (var i = 0; i < radioBtnElems.length; i++)
{
var thisRadioBtn = radioBtnElems[i];
if (thisRadioBtn.checked)
{
gsomSetCookie("gsomInputMode", thisRadioBtn.value, 5000);
break;
}
}
radioBtnElems = document.getElementsByName('radiobtn_gsomSoundCloudMode');
for (var i = 0; i < radioBtnElems.length; i++)
{
var thisRadioBtn = radioBtnElems[i];
if (thisRadioBtn.checked)
{
gsomSetCookie("gsomSoundCloudMode", thisRadioBtn.value, 5000);
break;
}
}
radioBtnElems = document.getElementsByName('radiobtn_gsomUseScrollButtonsMode');
for (var i = 0; i < radioBtnElems.length; i++)
{
var thisRadioBtn = radioBtnElems[i];
if (thisRadioBtn.checked)
{
gsomSetCookie("gsomUseScrollButtonsMode", thisRadioBtn.value, 5000);
break;
}
}
radioBtnElems = document.getElementsByName('radiobtn_gsomUseScrollButtonsMode');
for (var i = 0; i < radioBtnElems.length; i++)
{
var thisRadioBtn = radioBtnElems[i];
if (thisRadioBtn.checked)
{
gsomSetCookie("gsomUseScrollButtonsMode", thisRadioBtn.value, 5000);
break;
}
}
radioBtnElems = document.getElementsByName('radiobtn_gsomFontFamilyMode');
for (var i = 0; i < radioBtnElems.length; i++)
{
var thisRadioBtn = radioBtnElems[i];
if (thisRadioBtn.checked)
{
gsomSetCookie("gsomFontFamilyMode", thisRadioBtn.value, 5000);
break;
}
}
//Also save the user entered font.
var textboxElem = document.getElementById('text_gsomFontFamilyUserFont');
if (textboxElem != null)
gsomSetCookie("gsomFontFamilyUserFont", textboxElem.value, 5000);
var spanFontSizeElem = document.getElementById('span_gsomFontSizeMode');
if (spanFontSizeElem != null)
gsomSetCookie("gsomFontSizeMode", spanFontSizeElem.innerHTML, 5000);
var settingsMsgElem = document.getElementById("gsomSettingsMsgSpan");
if (settingsMsgElem == null) return;
settingsMsgElem.innerHTML = 'Settings saved. Changes will take effect when the page is reloaded.';
}
//increaseBy can be a negative number to decrease the font size setting.
function IncreaseFontSizeSetting(increaseBy)
{
var spanFontSizeElem = document.getElementById('span_gsomFontSizeMode');
if (spanFontSizeElem == null) return;
var newFontSize = parseFloat(spanFontSizeElem.innerHTML, 10) + increaseBy;
if (newFontSize < gsomFontSizeMin) newFontSize = gsomFontSizeMin;
else if (newFontSize > gsomFontSizeMax) newFontSize = gsomFontSizeMax;
var btnDecrease = document.getElementById('btn_gsomFontSizeMode_decrease');
var btnIncrease = document.getElementById('btn_gsomFontSizeMode_increase');
if (btnDecrease == null || btnIncrease == null) return;
btnDecrease.disabled = newFontSize <= gsomFontSizeMin;
btnIncrease.disabled = newFontSize >= gsomFontSizeMax;
spanFontSizeElem.innerHTML = newFontSize;
}
function ShowHideWarriorsQuotes()
{
var quotesLinkElem = document.getElementById("a_showhide_warriorsquotes");
if (quotesLinkElem == null) return;
var bShowQuotes;
if (quotesLinkElem.innerHTML == "Hide Quotes")
{
bShowQuotes = false;
quotesLinkElem.innerHTML = "Show Quotes";
}
else
{
bShowQuotes = true;
quotesLinkElem.innerHTML = "Hide Quotes";
}
var quotesElems = document.getElementsByClassName('gsom_warriorsquotes');
if (quotesElems == null) return;
for (var i = 0; i < quotesElems.length; i++)
{
var thisQuoteElem = quotesElems[i];
thisQuoteElem.style.display = bShowQuotes ? 'inline' : 'none';
}
}
function ShowHideSettings()
{
var settingsDivElem = document.getElementById("settings.div");
var settingsLinkElem = document.getElementById("a_showhide_settings");
if (settingsDivElem == null || settingsLinkElem == null) return;
if (settingsDivElem.style.display == 'none')
{
settingsDivElem.style.display = "inline";
settingsLinkElem.innerHTML = "Hide Settings";
}
else
{
settingsDivElem.style.display = "none";
settingsLinkElem.innerHTML = "Show Settings";
}
}
//////// CSS STYLES ////////
//Some CSS styles depend on the user's settings. So we dynamically write out the CSS styles here.
document.write('<style type="text/css">');
document.write('tr.gsom-zebra-tr { }');
document.write('tr.gsom-zebra-tr:nth-child(odd) { background-color:#E4E4E4; }');
document.write('tr.gsom-zebra-tr:nth-child(even) { background-color:#F7F7F7; }');
document.write('tr.gsom-whatsnext-tr { }');
document.write('tr.gsom-whatsnext-tr:nth-child(2) { background-color:#8CE448; }');
document.write('a.gsom:visited { color: #A44B87; }');
document.write('a.gsom:visited { color: #A44B87; }');
document.write('hr.gsom { background-color:#000000; height:2px; width:100%; margin:1em 0px 1em 0px; }');
document.write('h5.gsom { font-family:' + gsomFontFamilies + '; color:#000000; }');
document.write('blockquote.gsom { font-size:' + gsomFontSizePx + '; font-family:' + gsomFontFamilies + '; color:#000000; padding:0px 0px 0px 1em; }');
document.write('p.gsom { font-size:' + gsomFontSizePx + '; font-family:' + gsomFontFamilies + '; color:#000000; }');
document.write('table.gsom { font-size:' + gsomFontSizePx + '; font-family:' + gsomFontFamilies + '; color:#000000; width:100%; table-layout:fixed; }');
document.write('table.gsom_whatsnext { font-size:' + gsomFontSizePx + '; font-family:' + gsomFontFamilies + '; color:#000000; width:100%; }');
document.write('div.m-linksets.has-logo h3 { font-size:20px; }');
document.write('div.m-linksets ul { font-size:' + gsomFontSizePx + '; font-family:' + gsomFontFamilies + '; font-weight:bold; }');
if (gsomInputMode == 'touch')
document.write('span.gsom_boxscoregameflow_separator { display:inline-block; width:50px; text-align:center; }');
else
document.write('span.gsom_boxscoregameflow_separator { }');
document.write('</style>');
//////// LINKS DATA ////////
/*
Youtube Example:
"type":"youtube",
"youtube_iframeID":"",
"youtube_iframeURL":"",
"youtube_iframeHeight":"xxxpx",
"youtube_descString":"",
"youtube_descURL":"",
CSN Example:
"type":"csn",
"csn_iframeID":"",
"csn_iframeURL":"",
"csn_iframeHeight":"xxxpx",
"csn_descString":"",
"csn_descURL":"",
SoundCloud Example:
"type":"soundcloud",
"soundcloud_iframeID":"",
"soundcloud_baseURL":"",
"soundcloud_iframeHeight_flash":"xxxpx",
"soundcloud_iframeHeight_html5":"xxxpx",
"soundcloud_descString":"",
"soundcloud_descURL":"",
Mobli Example:
"type":"mobli",
"mobli_iframeID":"",
"mobli_iframeURL":"",
"mobli_iframeHeight":"xxxpx",
"mobli_descString":"",
"mobli_descURL":"",
Tout Example:
"type":"tout",
"tout_iframeID":"",
"tout_iframeURL":"",
"tout_iframeHeight":"xxxpx",
"tout_descString":"",
"tout_descURL":"",
*/
var gsomVideosArray =
[
{
"type":"soundcloud",
"soundcloud_iframeID":"pregame_videos",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200632465&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Yesterday: 95.7: Alvin Gentry with Dickinson and Steinmetz',
"soundcloud_descURL":"http://soundcloud.com/warriors/alvin-gentry-on-957-the-games-nba-show-41215",
},
{
"type":"youtube",
"youtube_iframeID":"pregame_videos",
"youtube_iframeURL":"http://www.youtube.com/embed/B8m0rWjhkBg?autoplay=1",
"youtube_iframeHeight":"310px",
"youtube_descString":'Warriors TV: Strength in Numbers - The Time Has Come',
"youtube_descURL":"http://www.youtube.com/watch?v=B8m0rWjhkBg",
},
{
"type":"youtube",
"youtube_iframeID":"pregame_videos",
"youtube_iframeURL":"http://www.youtube.com/embed/KItQxNxq9k0?autoplay=1",
"youtube_iframeHeight":"310px",
"youtube_descString":'NBA: Warriors Ready for the Playoffs',
"youtube_descURL":"http://www.youtube.com/watch?v=KItQxNxq9k0",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"pregame_videos",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200646027&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Shootaround: Shaun Livingston interview',
"soundcloud_descURL":"http://soundcloud.com/warriors/shaun-livingston-shootaround-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"pregame_videos",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200704100&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Pregame: Steve Kerr interview',
"soundcloud_descURL":"http://soundcloud.com/warriors/steve-kerr-pregame-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"pregame_videos",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200703940&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Pregame: Dave Joerger interview',
"soundcloud_descURL":"http://soundcloud.com/warriors/dave-joerger-pregame-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"pregame_videos",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200704031&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Presstable: Tim Roye interviews Marc Spears (Yahoo Sports)',
"soundcloud_descURL":"http://soundcloud.com/warriors/presstable-marc-spears-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"pregame_videos",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200703758&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'This Date in NBA History: Heinsohn leads Celtics to 1st ring as rookie in game7 1957',
"soundcloud_descURL":"http://soundcloud.com/warriors/this-date-in-nba-history-heinsohn-leads-celtics-to-1st-championship-as-rookie-in-game7-1957-41315",
},
{
"type":"csn",
"csn_iframeID":"pregame_videos",
"csn_iframeURL":"http://player.theplatform.com/p/pcPFDC/bayarea/select/oPOG8Lv0371w?autoPlay=true¶ms=zone%3Dwarrior",
"csn_iframeHeight":"300px",
"csn_descString":'Kozimor, Berman, Tompkins: Should the Warriors be favored in West?',
"csn_descURL":"http://www.csnbayarea.com/video_content_type/ystl-should-warriors-be-favored-west",
},
{
"type":"csn",
"csn_iframeID":"postgame_videos",
"csn_iframeURL":"http://player.theplatform.com/p/pcPFDC/bayarea/select/U5mqWuYrVc3W?autoPlay=true¶ms=zone%3Dwarrior",
"csn_iframeHeight":"300px",
"csn_descString":'Rosalyn Gold-Onwude interviews Draymond Green right after the game',
"csn_descURL":"http://www.csnbayarea.com/video_content_type/green-only-thing-world-klay-cares-about-his-shot",
},
{
"type":"csn",
"csn_iframeID":"postgame_videos",
"csn_iframeURL":"http://player.theplatform.com/p/pcPFDC/bayarea/select/JGUIMaopiAm3?autoPlay=true¶ms=zone%3Dwarrior",
"csn_iframeHeight":"300px",
"csn_descString":'Steve Kerr at the podium',
"csn_descURL":"http://www.csnbayarea.com/video_content_type/kerr-guys-werent-ready-play-fourth-they-got-have-more-pride",
},
{
"type":"csn",
"csn_iframeID":"postgame_videos",
"csn_iframeURL":"http://player.theplatform.com/p/pcPFDC/bayarea/select/Qc7fyzDIj2Mx?autoPlay=true¶ms=zone%3Dwarrior",
"csn_iframeHeight":"300px",
"csn_descString":'Klay Thompson in the locker room',
"csn_descURL":"http://www.csnbayarea.com/video_content_type/thompson-when-steph-and-i-get-going-were-impossible-guard",
},
{
"type":"csn",
"csn_iframeID":"postgame_videos",
"csn_iframeURL":"http://player.theplatform.com/p/pcPFDC/bayarea/select/ya_RR_3kFRFO?autoPlay=true¶ms=zone%3Dwarrior",
"csn_iframeHeight":"300px",
"csn_descString":'CSN highlights, recap',
"csn_descURL":"http://www.csnbayarea.com/warriors/highlights-warriors-down-grizzlies-help-klay-thompson",
},
{
"type":"youtube",
"youtube_iframeID":"postgame_videos",
"youtube_iframeURL":"http://www.youtube.com/embed/q1L4ecQf0Ek?autoplay=1",
"youtube_iframeHeight":"310px",
"youtube_descString":'Warriors TV game wrap',
"youtube_descURL":"http://www.youtube.com/watch?v=q1L4ecQf0Ek",
},
{
"type":"csn",
"csn_iframeID":"postgame_videos",
"csn_iframeURL":"http://player.theplatform.com/p/pcPFDC/bayarea/select/I5LrEoFzmKWU?autoPlay=true¶ms=zone%3Dwarrior",
"csn_iframeHeight":"300px",
"csn_descString":'Highlights: Klay lights up Grizzlies, posts 26 in second quarter',
"csn_descURL":"http://www.csnbayarea.com/warriors/klay-lights-grizzlies-posts-26-second-quarter",
},
{
"type":"csn",
"csn_iframeID":"postgame_videos",
"csn_iframeURL":"http://player.theplatform.com/p/pcPFDC/bayarea/select/MY31EGWH2HIu?autoPlay=true¶ms=zone%3Dwarrior",
"csn_iframeHeight":"300px",
"csn_descString":'Highlight: Shot of the Game: Klay throws up lefty reverse layup',
"csn_descURL":"http://www.csnbayarea.com/video_content_type/shot-game-klay-throws-lefty-reverse-layup",
},
{
"type":"youtube",
"youtube_iframeID":"postgame_videos",
"youtube_iframeURL":"http://www.youtube.com/embed/dXkOTdWA6mo?autoplay=1",
"youtube_iframeHeight":"310px",
"youtube_descString":'Klay Thompson highlights by GD\'s Extra Highlights',
"youtube_descURL":"http://www.youtube.com/watch?v=dXkOTdWA6mo",
},
{
"type":"youtube",
"youtube_iframeID":"postgame_videos",
"youtube_iframeURL":"http://www.youtube.com/embed/RCP3wsR5oIc?autoplay=1",
"youtube_iframeHeight":"310px",
"youtube_descString":'Klay Thompson highlights by FreeDawkins',
"youtube_descURL":"http://www.youtube.com/watch?v=RCP3wsR5oIc",
},
];
var gsomSoundCloudArray =
[
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200712246&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Klay Thompson 26th point of 2nd',
"soundcloud_descURL":"http://soundcloud.com/warriors/klay-26th-point-of-2nd",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200721781&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Draymond Green - postgame CSN Bay Area (4/13/15)',
"soundcloud_descURL":"http://soundcloud.com/warriors/draymond-green-postgame-csn-bay-ara-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200721965&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Klay Thompson - postgame Warriors Radio (4/13/15)',
"soundcloud_descURL":"http://soundcloud.com/warriors/klay-thompson-postgame-warriors-radio-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200730861&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Steve Kerr - postgame (4/13/15)',
"soundcloud_descURL":"http://soundcloud.com/warriors/steve-kerr-postgame-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200730937&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Steph Curry - locker room (4/13/15)',
"soundcloud_descURL":"http://soundcloud.com/warriors/steph-curry-locker-room-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200731030&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Klay Thompson - locker room (4/13/15)',
"soundcloud_descURL":"http://soundcloud.com/warriors/klay-thompson-locker-room-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200730974&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Draymond Green - locker room (4/13/15)',
"soundcloud_descURL":"http://soundcloud.com/warriors/draymond-green-locker-room-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200730901&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Dave Joerger - postgame (4/13/15)',
"soundcloud_descURL":"http://soundcloud.com/warriors/dave-joerger-postgame-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200730822&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Zach Randolph - locker room (4/13/15)',
"soundcloud_descURL":"http://soundcloud.com/warriors/zach-randolph-locker-room-41315",
},
{
"type":"soundcloud",
"soundcloud_iframeID":"postgame_soundcloud",
"soundcloud_baseURL":"https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F200730797&auto_play=true",
"soundcloud_iframeHeight_flash":"185px",
"soundcloud_iframeHeight_html5":"300px",
"soundcloud_descString":'Marc Gasol - locker room (4/13/15)',
"soundcloud_descURL":"http://soundcloud.com/warriors/marc-gasol-locker-room-41315",
},
];
/* Example:
{
"length":"x:xx min",
"URL":"",
"descString":"",
},
*/
var gsomRadioAudioArray =
[
{
"length":"10:15 min",
"URL":"http://media.957thegame.com/hosting/media/kgmz/1639665/104127688/matt-steinmetz-104127688.mp3",
"descString":"95.7 FM: Matt Steinmetz on Flight 957 Morning Show"
},
{
"length":"11:51 min",
"URL":"http://media.957thegame.com/hosting/media/kgmz/1622915/eric-hasseltine-for-air.mp3",
"descString":"95.7 FM: Eric Hasseltine (Grizzlies play by play) with Lund, Dibley, and Steinmetz"
},
];
/* Example:
{
"URL":"",
"descString":"",
},
*/
var gsomNBAcomVideosArray =
[
{
"URL":"http://nba.cdn.turner.com/nba/big/games/warriors/2015/04/14/0021401212-mem-gsw-kerr-int.nba_nba_576x324.flv",
"descString":"8.3 MB: Pregame: Steve Kerr NBATV nterview",
},
{
"URL":"http://nba.cdn.turner.com/nba/big/games/warriors/2015/04/14/0021401212-mem-gsw-joerger-int.nba_nba_576x324.flv",
"descString":"12.3 MB: Pregame: David Joerger NBATV interview",
},
{
"URL":"http://nba.cdn.turner.com/nba/big/games/warriors/2015/04/13/0021401212-mem-gsw-play1.nba_nba_576x324.flv",
"descString":"1.9 MB: Barnes Steals And Scores",
},
{
"URL":"http://nba.cdn.turner.com/nba/big/games/warriors/2015/04/13/0021401212-mem-gsw-play2.nba_nba_576x324.flv",
"descString":"1.8 MB: Warriors Score Quick",
},
{
"URL":"http://nba.cdn.turner.com/nba/big/games/warriors/2015/04/13/0021401212-mem-gsw-play3.nba_nba_576x324.flv",
"descString":"1.4 MB: Thompson Starts Hot",
},
{
"URL":"http://nba.cdn.turner.com/nba/big/games/warriors/2015/04/13/0021401212-mem-gsw-play4.nba_nba_576x324.flv",
"descString":"1.8 MB: Thompson Goes Lefty",
},
{
"URL":"http://nba.cdn.turner.com/nba/big/games/warriors/2015/04/13/0021401212-mem-gsw-play5.nba_nba_576x324.flv",
"descString":"1.7 MB: Defense To Offense",
},
{
"URL":"http://nba.cdn.turner.com/nba/big/games/warriors/2015/04/13/0021401212-mem-gsw-play6.nba_nba_576x324.flv",
"descString":"8.8 MB: Klay's Hot Half",
},
{
"URL":"http://nba.cdn.turner.com/nba/big/channels/top_plays/2015/04/13/20150413-nightly-notable.nba_nba_576x324.flv",
"descString":"14.3 MB: Nightly Notable: Klay Thompson",
},
{
"URL":"http://nba.cdn.turner.com/nba/big/games/warriors/2015/04/13/0021401212-mem-gsw-recap.nba_nba_576x324.flv",
"descString":"12.0 MB: Grizzlies vs. Warriors",
},
];
</script>
https://www.goldenstateofmind.com/2015/4/13/8408459/game-links-81-golden-state-warriors-111-vs-memphis-grizzlies-107IQofaWarrior2015-04-13T22:23:34-07:002015-04-13T22:23:34-07:00Recap: Klay & Warriors Starters Dominate Grizzlies
<figure>
<img alt="" src="https://cdn.vox-cdn.com/thumbor/vPp1UENWwzA0AFPJbL1qn24QrDo=/0x172:1912x1447/1310x873/cdn.vox-cdn.com/uploads/chorus_image/image/46116718/usa-today-8518959.0.jpg" />
<figcaption>Kelley L Cox-USA TODAY Sports</figcaption>
</figure>
<p>Let's forget the fourth quarter ever happened - garbage time will not distract us from Klay Thompson going off in the first half while leading the Warriors to an eventual (but too close) win</p> <p>The Warriors dominated the Grizzlies for three quarters before watching their lead and overall points differential take a hit during garbage time, breathing a sigh of relief when the final buzzer sounded and walking away with the 111-107 victory. For those that didn't watch the game, this was not and should not have been as close as the scoreboard finally read. We will recap this game in two parts:</p>
<h4><b>The Starters</b></h4>
<p>The Grizzlies came to Oracle quite beat up - Tony Allen has missed time with his bad hamstring and is still hoping to get right before the playoffs. Marc Gasol and Jeff Green were both questionable for the game tonight but played, while Mike Conley had to sit out again with a bad ankle. They found themselves in an absolute deadlock for the 3-6 spots in the playoffs, all jockeying for the easiest trip to the conference finals and hopefully a showdown with these Warriors.</p>
<p>The Warriors came off extra practice and rest during this last gift of a home stand while preparing for their first round playoff matchup. While fighting out of the recent two game losing streak, the team has finally started to have fun again and getting their groove back just in time. Players like Harrison Barnes and Draymond Green need these games to keep their focus locked in while getting their scoring touches back.</p>
<p>Would the Warriors stay locked in while playing for nothing besides bragging rights while the Grizzles were still battling for their playoff spot? The answer was Klay Thompson. Klay outscored the Grizzles himself in the second quarter, netting 37 points by halftime. In fact, he outscored the rest of his own team on his way to 14-18 shooting. Klay was backed up with efficient scoring from his teammates and great defense that kept the Grizzlies to 40% shooting before halftime.</p>
<p>My only complaint about Klay's run in the 2<sup>nd</sup> quarter is that this team can look so amazingly sloppy at times. They have fun and the highlight reel plays come, but they have the composure of a rec league team when they get excited. These silly turnovers and bad passes shouldn't be happening this late in the season, no matter how pointless the games are. As everyone at Oracle knew that the ball was being forced to Klay every time, the team started making bad passes and simple mistakes. It is all fun to watch, but it could have been a bit cleaner.</p>
<p>Let's get back to the game though - this matchup looks and feels different when Bogut plays. So often in the past you had to face Gasol and ZBo with no anchor in the middle. What is telling about the last two decisive wins over the Grizzles has been the shutting down of the big men down low. Sure, with Conley out they didn't have much choice, but the Grizzles already-anemic offense looked even worse tonight.</p>
<p>After their injuries, the Grizzles carted out the collection of JaMychal Green, Beno Udrich, Jordan Adams and crew while the Warriors still kept the starters in regular rotation. The conversation would include on TV the concept of rest vs rust; remember the number of games this year that Curry hasn't played in the 4<sup>th</sup> quarter (18). Credit can be given to the coaching staff for balancing out minutes well, but it becomes easy when the Warriors are regularly up double digits by the middle of the third.</p>
<p>My opinion: I watched highlights of the Trailblazers vs Thunder tonight and watched Nicholas Batum and C.J. McCollum go down with injuries. While the Trailblazers are still fighting for a spot and can't rest players, it is a reminder that stars can hurt at any time. I watch this team with crossed fingers and slightly held breath hoping every time a player hits the ground that it's not a pulled hamstring or rolled ankle.</p>
<p>In the end, the Starters would leave the game with a 32 point lead midway through the third, fully dismantling this Grizz team who isn't far off looking like the decisive two-seed in the west. They now face the real fear of dropping out of home court advantage for the first round, which puts their title hopes even that much farther away.</p>
<h4><b>Garbage Time</b></h4>
<p>Since nobody cares or should care about garbage time in a meaningless game for the Warriors, I am going to keep this short. The bench looked like trash, and shouldn't have with an ex-All Star out on the court (David Lee) and a key backup in the rotation (Shawn Livingston). The team got very close to putting the starters back in as Jordan Adams and Russ Smith dominated the fourth quarter (overall 41-18 scoring), but in the end the punishment might have been more fitting to have to stay in and finish the game themselves. As we all watched Brandon Rush and David Lee clank free throws, I'm sure Steve Kerr was looking down the bench with an itchy trigger finger waiting to put back in Klay or Steph to finish it off, but ended up letting the crew that got themselves into trouble find a way to finish it. Let's hope tape of the fourth quarter is destroyed and never watched again.</p>
<h5><b><i>Final Thoughts</i></b></h5>
<p><b> </b></p>
<p> </p>
<p>Bring on the playoffs - it's fun to watch Klay go off, but save em for when it counts buddy. The season wraps Wednesday and I sure hope that no starter plays more than 15 minutes tops. I am already pressing my Curry Jersey and prepping my watching location (Finnertys in New York) for game one. So forget the fourth quarter of this game ever happened and convince yourself the Warriors won by thirty. Now let's play games that count.</p>
https://www.goldenstateofmind.com/2015/4/13/8409033/recap-warriors-starters-dominate-grizzlies-bench-does-not-but-stillJeff Cheal2015-04-13T20:43:13-07:002015-04-13T20:43:13-07:00Klay Thompson catching FIRE!<h3 class="link-title"><a rel="nofollow" href="https://twitter.com/ESPNStatsInfo/status/587821737510903808">Klay Thompson catching&nbsp;FIRE!</a></h3>
<div class="description"><p><p>7 THREES IN THE FIRST HALF</p></p></div>
https://www.goldenstateofmind.com/2015/4/13/8408837/klay-thompson-catching-firechowster242015-04-13T18:30:02-07:002015-04-13T18:30:02-07:00Warriors vs. Grizzlies gamethread
<figure>
<img alt="" src="https://cdn.vox-cdn.com/thumbor/WRxDDUlqNO5UyHNalSsmULItJv8=/0x491:1684x1614/1310x873/cdn.vox-cdn.com/uploads/chorus_image/image/46114032/usa-today-8480692.0.jpg" />
<figcaption>Nelson Chenault-USA TODAY Sports</figcaption>
</figure>
<p>The Warriors take on the Memphis Grizzlies tonight at 7:30 PM PDT</p> <p>A <a href="http://www.sbnation.com/nba/2015/3/11/8174759/nba-playoffs-2015-tiebreakers-western-conference" target="_blank">convoluted Western Conference</a> nears the start of the playoffs as the <a class="sbn-auto-link" href="https://www.grizzlybearblues.com/">Memphis Grizzlies</a> visit town. With a potential second-seed in the playoffs on the line, how many of their starters will we see?</p>
<p>[[Update]]:</p>
<p><script charset="utf-8" src="//platform.twitter.com/widgets.js"></script></p>
<blockquote data-partner="tweetdeck" class="twitter-tweet"> <p>Conley is OUT tonight. Gasol is Game Time Decision. Jeff Green is likely to play <a href="https://twitter.com/warriors">@warriors</a></p>— CSN Warriors News (@CSNWarriors) <a href="https://twitter.com/CSNWarriors/status/587785831747751937">April 14, 2015</a> </blockquote>
<p>Who do you think deserves the two seed? Or, rather, who would you rather see get it?</p>
<p>Vote below!</p>
<fieldset class="poll-box">
<legend>Poll</legend>
<h5 class="poll-title">Who would you rather see win the 2-seed in the West?</h5>
<div id="poll_container_292490_609185643" class="poll_container">
<div class="poll_option clearfix">
<div class="poll_option_percentage" style="display:none">81%</div>
<div class="poll_option_result">
<h5>San Antonio Spurs</h5>
<div class="poll_option_bar"><span class="vote_count">92</span> votes</div>
</div>
</div>
<div class="poll_option clearfix">
<div class="poll_option_percentage" style="display:none">6%</div>
<div class="poll_option_result">
<h5>Los Angeles Clippers</h5>
<div class="poll_option_bar"><span class="vote_count">7</span> votes</div>
</div>
</div>
<div class="poll_option clearfix">
<div class="poll_option_percentage" style="display:none">5%</div>
<div class="poll_option_result">
<h5>Memphis Grizzlies</h5>
<div class="poll_option_bar"><span class="vote_count">6</span> votes</div>
</div>
</div>
<div class="poll_option clearfix">
<div class="poll_option_percentage" style="display:none">8%</div>
<div class="poll_option_result">
<h5>Houston Rockets</h5>
<div class="poll_option_bar"><span class="vote_count">9</span> votes</div>
</div>
</div>
<p class="poll-total-votes"><strong>114</strong> votes
| <span class="poll-has-closed">Poll has closed</span>
</p>
</div>
<script type="text/javascript">
jQuery(document).ready(function(){
new SBN.Poll('poll_container_292490_609185643').animateResults({renderImmediately:true});
});
</script>
</fieldset>
https://www.goldenstateofmind.com/2015/4/13/8406303/warriors-vs-grizzlies-gamethread-playoff-implications-for-the-rest-ofBram Kincheloe2015-04-13T00:00:02-07:002015-04-13T00:00:02-07:00Preview: Warriors vs. Grizzlies
<figure>
<img alt="" src="https://cdn.vox-cdn.com/thumbor/U0Fz7RYzvkjuqoEPsyUiMpQg_KA=/0x0:3693x2462/1310x873/cdn.vox-cdn.com/uploads/chorus_image/image/46103352/usa-today-8514480.0.jpg" />
<figcaption>Derick E. Hingle-USA TODAY Sports</figcaption>
</figure>
<p>The Golden State Warriors take on the Memphis Grizzlies. How many of the starters (on both sides of the court) will we see active tonight?
</p> <p style="text-align: center;"><a class="sbn-auto-link" href="https://www.goldenstateofmind.com/">Golden State Warriors</a> (65-15) at <a class="sbn-auto-link" href="https://www.grizzlybearblues.com/">Memphis Grizzlies</a> (54-26)</p>
<p style="text-align: center;">7PM PST Tip-off</p>
<p style="text-align: center;">Oracle Arena, Oakland</p>
<p style="text-align: center;">CSN Bay Area | Radio: KNBR 680</p>
<p style="text-align: center;">Buddy blog: <a href="http://www.grizzlybearblues.com/" target="_blank">www.grizzlybearblues.com</a></p>
<p style="text-align: left;">At first glance, with only two games remaining in the regular season, tonight's matchup looks to be a big one. But really, how many of the starters will we see active? The Grizzlies are battling a serious injury bug, and the Warriors may decide to rest some key players. However, the Grizzlies are still jockeying for playoff position and will come in guns blazing, regardless of who is fit to start. As for the Warriors, they've already clinched the best record in the NBA and home court advantage throughout the playoffs. They've got nothing to lose if the Grizzlies take this one tonight.</p>
<h4><b>Warriors come out to rest?</b></h4>
<p>With a 37-2 record on top of a 16 game win streak at home, the Warriors have shown that Oracle Arena is one helluva tough place to win for any opponent. Depending on what Coach Kerr has up his sleeve, it should be interesting to see what type of line up he has in store for Warriors fans tonight. Things got sloppy last Saturday night when the Dubs blew a 17-point lead against the <a class="sbn-auto-link" href="https://www.canishoopus.com/">Timberwolves</a>.</p>
<h4><b>The Grizzlies gunning for that number 2 spot.</b></h4>
<p>With <span>Marc Gasol</span>, <span>Mike Conley</span> and <span>Jeff Green</span> all listed as questionable, and with <span>Tony Allen</span> already having been ruled out with a lingering hamstring issue, things aren't looking too good for Memphis going into tonight's game. We may see Coach David Joerger deciding to play it safe and get these guys rested going into the postseason.</p>
<p>Want an idea of how crazy the Western conference has been this season? Beyond the Portland Trailblazers, who have clinched the four seed by virtue of winning their division, the second, third, fifth and sixth teams (<a href="https://www.poundingtherock.com/" class="sbn-auto-link">Spurs</a>, <a href="https://www.clipsnation.com/" class="sbn-auto-link">Clippers</a>, Grizzlies, <a href="https://www.thedreamshake.com/" class="sbn-auto-link">Rockets</a>) are all separated by a mere half game. Even though the two seed is in play for the Grizzlies, if the playoffs started today, Memphis would be the five seed, but would still have home court advantage over the four seed Trailblazers because of their better record. Sound convoluted? It is. For a comprehensive breakdown of the current Western Conference playoff picture, <a target="_blank" href="http://www.sbnation.com/nba/2015/3/11/8174759/nba-playoffs-2015-tiebreakers-western-conference">read this</a>.</p>
<h4><b>Predictions: </b></h4>
<p>- It will be good to see the bench contribute if Coach Kerr decides to limit our starters' minutes. I'm all about keeping our guys healthy going into the first round.</p>
<p>- I feel like <span>David Lee</span> is going to go off. Just a little sneak peek to how much of an important key factor he'll be when the season ends.</p>
<p>- Hoping the Dubs control the tempo and make adjustments from Saturdays sloppy game against Minnesota. Solid defense, a fiery shooting night from our squad and a few highlight moments.</p>
<p>- Sorry Memphis, The Warriors got this and win by 7.</p>
<p><span>Regardless of who suits up, it’s going to be a great time out at the "Roaracle" tonight!</span></p>
https://www.goldenstateofmind.com/2015/4/13/8396577/nba-preview-golden-state-warriors-vs-memphis-grizzlies-nothing-to-loseTony.psd