




var PARAM_NAME_LOCALE = 'pi.localeId';
function initialisePage() {
  if (navigator.appVersion.indexOf("Mac") > 0) gbl_OSname = "Mac";
  if (navigator.appVersion.indexOf("Win") > 0) gbl_OSname = "Win";
  if (navigator.appName.substring(0,8) == "Netscape") gbl_browserName = "NN";
  if (navigator.appName.substring(0,9) == "Microsoft") gbl_browserName = "IE";
  if (parseInt(navigator.appVersion) >= 3) gbl_browserVersion="3x";
  if (parseInt(navigator.appVersion) >= 4) gbl_browserVersion="4x";
  if (parseInt(navigator.appVersion) >= 5) gbl_browserVersion="5x";
  
  gbl_userCountry = GetChip ("video", "ctry");
  if (gbl_browserName == "IE") {
    if (gbl_userCountry != "IT") {
      document.domain = "betfair.com";
    } else {
      document.domain = "w-gen.betfair.com";
    }
  }
  
  if (document.getElementsByTagName) {
    var inputElements = document.getElementsByTagName("input");
    if (inputElements) {
      for (i=0; inputElements[i]; i++) {
        if (inputElements[i].className && (inputElements[i].className.indexOf("disableAutoComplete") != -1)) {
          inputElements[i].setAttribute("autocomplete","off");
        }
      }
    }
  }
  
  toggleDivs(0,4,false);

  
  gbl_language = GetChip ("video", "lang");
  if (gbl_language == null || gbl_language == "") {
    if (typeof qs[PARAM_NAME_LOCALE] != "undefined") {
      gbl_language = qs[PARAM_NAME_LOCALE];
      if (gbl_language == "cz") {
        gbl_language = "cs";
      }
      var expiryDate = new Date();
      expiryDate.setFullYear(expiryDate.getFullYear() + 1);
      SetChip ("video", "lang",gbl_language, expiryDate)
    } else {
      gbl_language = "en";
    }
  }
  
  setDropDownValue("language",gbl_language,0);
  
  var blurbDiv = document.getElementById("introText_" + gbl_language);
  if (blurbDiv) {
    blurbDiv.style.display="block";
  }
  
  var flashMovie = document.getElementById("videoPlayerTease");
  if (flashMovie) {
    var flashHtml = '<object width="480" height="408" type="application/x-shockwave-flash" data="./images/' + gbl_language + '/live_video.swf">';
    flashHtml += '<param name="movie" value="./images/' + gbl_language + '/live_video.swf">';
    flashHtml += '<div class="videoReplace">Click on the event to view the live stream.&nbsp;<br/><br/><a target="_blank" href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Download flash player</a>&nbsp;to optimise your viewing experience.</div>';
    flashHtml += '</object>';
    flashMovie.innerHTML = flashHtml;
    flashMovie.style.display="block";
  }


  
  if (typeof qs['origin'] != "undefined") {
    var expiryDate = new Date();
    expiryDate.setFullYear(expiryDate.getFullYear() + 1);
    SetChip ("video", "origin",qs['origin'], expiryDate)
  }
  
  var tandcs = document.getElementById("tandcs");
  if (GetChip ("video", "tandcs") ==1) {
    var tandcsstuff = document.getElementById("tandcsstuff");
    if (tandcsstuff) {
      tandcsstuff.style.visibility="hidden";
    }
  }
  
  if (gbl_OSname == "Win" && gbl_browserName == "IE") {
    gbl_UserHasIEFullCapabilities = true;
  } else {
    gbl_UserHasIEFullCapabilities = false;
  }
  
  writeClipsTables();
  
  InitializeRefreshTimer();
  
  InitializeRefreshTimerFast();
  
  if (typeof qs['errTrans'] != "undefined") {
    var errorDiv = document.getElementById("loginerrors");
    if (errorDiv) {
      errorDiv.style.display="block";
      errorText = unescape(qs['errTrans']);
      errorText = gbl_errTranslatorHash[errorText];
      if (typeof errorText != "undefined") {
        errorDiv.innerHTML += errorText;
      } else {
        errorDiv.innerHTML += gbl_errTranslatorHash["ERROR"];
      }
    }
  } else {
    
    var errorDiv = document.getElementById("loginerrors");
    if (errorDiv) {
      if (errorDiv.innerHTML.length > 10) {
        errorDiv.style.display="block";
      } else {
        errorDiv.style.display="none";
      }
    }
  }
  
  handleIncomingEventsOrDeferredLoginSelections();
  
  if (GetCookie("rlogin")!=null && GetChip("rlogin","rl")==1) {
    DeleteCookie("rlogin");
    if (GetCookie("usrtag") != null && gbl_sessionTokenId.length > 0 && "null" != gbl_sessionTokenId) {
      try {
				if (window.opener && window.opener.top && window.opener.top.location && !window.opener.top.closed ){
          window.opener.top.location.reload(true);
				}
			} catch (err) {
				
			}
		}
  }
}

function jsDataUpdater () {
  document.getElementById("eventsLib").src =  gbl_JScriptPath + "?rnd=" + (Math.round((Math.random()*999999)+1));
}


function openWindow(theURL,winName,features) {
  var newWindow = window.open(theURL,winName,features);
  if (window.focus) {newWindow.focus()};
}

function setClip(mediaPlayer,clipName) {
  var curClip;
  var bPlayState;
  if (gbl_browserName == "IE") {
    curClip = document.objMediaPlayer.FileName;
    bPlayState = document.objMediaPlayer.PlayState;
  } else {
    curClip = document.objMediaPlayer.GetFileName();
    bPlayState = document.objMediaPlayer.GetPlayState();
  }
  if ((unescape(curClip) == unescape(clipName)) && ((bPlayState != 2) || (bPlayState != 3))) {
    play(mediaPlayer);
  } else {
    if (gbl_browserName == "IE") {
      document.objMediaPlayer.FileName = clipName;
    } else {
      document.objMediaPlayer.SetFileName(clipName);
    }
    play(mediaPlayer);
  }
}

function play(mediaPlayer) {
  // play the selected media
  var bPlayState;
  bPlayState = mediaPlayer.PlayState;
  if (bPlayState != 2) {
    // Start the playback
    mediaPlayer.Play();
  }
  return false;
}

function writeClipsTables() {
  var outHtml= "<table id='selectTable' class='selectTable' cellpadding='2' cellspacing='0' width='100%'>";
  outHtml   += "  <thead></thead>";
  outHtml   += "  <tbody>";
  var sportFilter = document.getElementById("sportFilter").options[document.getElementById("sportFilter").selectedIndex].value;
  var timeFilter = document.getElementById("timeFilter").options[document.getElementById("timeFilter").selectedIndex].value;
  var rowsShown = 0;
  for (ii=0; ii < clipsArray.length; ii++) {
    if (clipsArray[ii].isArchiveClip()) {
    } else {
      if (!rowShouldBeFiltered (ii,sportFilter,timeFilter,gbl_userCountry) ) {
        clipsArray[ii].rowNumber = rowsShown;
        rowsShown ++;
        outHtml   += clipsArray[ii].writeAsTableRow(ii);
      }
    }
  }
  outHtml   += "  </tbody>";
  outHtml   += "</table>";
  var clipListDiv = document.getElementById("upcomingClipData");
  if (clipListDiv) {
    clipListDiv.innerHTML = outHtml;
  }
}

function rowShouldBeFiltered(ii,sportFilter,timeFilter,userCountry) {
  
  var hideRow=false;
  switch (sportFilter) {
    case 'all':
      // do nothing
      break;
    default:
      if (clipsArray[ii].getClipSportId() != sportFilter) {
        hideRow = true;
      }
      break;
  }
  
  if (!hideRow) {
    if (clipsArray[ii].isGeoblocked()) {
      hideRow = true;
    }
  }
  
  if (!hideRow) {
    var dateWidget = new Date();
    for (i = 0; i < 7; i++) {
      dateWidget.setDate(dateWidget.getDate() + 1);
    }
    var weekAway = dateWidget;
    dateWidget = new Date();
    dateWidget.setMonth(dateWidget.getMonth() + 1);
    var monthAway=dateWidget;
    dateWidget = new Date();
    
    dateWidget.setHours(dateWidget.getHours() -4);
    switch (timeFilter) {
        case 'all':
          
          break;
        case 'week':
          if (clipsArray[ii].getClipStartTime() < dateWidget || clipsArray[ii].getClipStartTime() > weekAway) {
            hideRow = true;
          }
          break;
        case 'month':
          if (clipsArray[ii].getClipStartTime() < dateWidget || clipsArray[ii].getClipStartTime() > monthAway) {
            hideRow = true;
          }
          break;
    }
  }
  

  return hideRow ;
}

function selectClip (clipId) {
  clearTimeout(streamCutOffTimeOutId);
	
  if (GetCookie("usrtag") != null && gbl_sessionTokenId.length > 0 && "null" != gbl_sessionTokenId) {
    
		var StreamListingDiv = document.getElementById("StreamListing");
		if (StreamListingDiv) {
			StreamListingDiv.className="scrollingContentScheduleTrunc";
		}
    
		var mktDataWrapDiv = document.getElementById("mktDataWrap");
		if (mktDataWrapDiv) {
			mktDataWrapDiv.style.display="block";
		}
    
    
      
    
    
      
        var marketOddsFramesetDiv = document.getElementById("marketOddsFrameset");
        if (marketOddsFramesetDiv) {
          marketOddsFramesetDiv.style.display="block";
        }
      
    
    gblSelectedVid = clipId;
    for (var ii=0; ii < clipsArray.length; ii++){
      
      if (!clipsArray[ii].isArchiveClip()) {
        if (clipId == clipsArray[ii].getClipId()) {
          
          hideDemo();
          
          if (clipsArray[ii].isLiveNow()) {
			
			if (!clipsArray[ii].isGeoblocked()) {
				document.getElementById("videoPlayer").style.display="block";
				document.getElementById("videoPlayerTease").style.display="none";
				var videoTitle = document.getElementById("videoTitleDiv");
				if (videoTitle) {
					videoTitle.innerHTML=clipsArray[ii].getClipDescription();
				}
				setStreamProviderClip(gbl_msgVideoLoading)
				
                gbl_currentStreamProviderId = clipsArray[ii].getProviderId();
                gbl_currentMarketId = clipsArray[ii].getMarketId();
                if(gbl_currentStreamProviderId == 7 || gbl_currentStreamProviderId == 8){
                    gbl_streamOnline = false;
                    StartStreamCutOffChecker();
                } else {
                    sendXMLHttpRequest (document.location.protocol + '//' + document.location.host + "/LogVideo.do?s=" + gbl_jScriptParamString + "&eventId=" + clipsArray[ii].getPvdrEventId() + "&mi=" + clipsArray[ii].getMarketId() + "&drm=" + clipsArray[ii].getApplyDrm() + "&pvdr=" + clipsArray[ii].getProviderId() + "&arch=" + clipsArray[ii].isArchiveClip() + "&loc=" + clipsArray[ii].getLocation() + "&pre=" + clipsArray[ii].getLeadInMinutes() + "&startTime=" + clipsArray[ii].getClipStartTimeFormatted() + "&bbv=" + clipsArray[ii].getBBVMarketIdsFormatted() + "&ex="  + clipsArray[ii].getExchangeId() + "&flash=1&sub="  + clipsArray[ii].getSubId() + "&subd="  + clipsArray[ii].getSubDate() + "&ev="  + clipsArray[ii].getMarketEventId() +  "&rnd=" + (Math.round((Math.random()*999999)+1)),logVideoAjax);
                }
			} else {
				alert(gbl_msgGeoblocked);
			}
          } else {
            
            setStreamProviderClip ("");
            document.getElementById("videoPlayer").style.display="none";
            document.getElementById("videoPlayerTease").style.display="block";
          }
          if (clipsArray[ii].getMarketId() > 0 ) {
            if (clipsArray[ii].getShowMarketData() == "Y") {
              gbl_selectedClip = clipsArray[ii];
              
              
                
              
              
              
                
              
              
              
                
                  var dataIFrame = document.getElementById("main");
                  if (dataIFrame){
                    dataIFrame.src = composeExternalUrlWithRetainedParams("./FrameMain.do?mi=" + gbl_selectedClip.getMarketId() +  "&ex=" + gbl_selectedClip.getExchangeId() + "&rnd=" + (Math.round((Math.random()*999999)+1)));
                  }
                
              
            } else {
              
                
              
              
                
                  
                  var marketOddsFramesetDiv = document.getElementById("marketOddsFrameset");
                  if (marketOddsFramesetDiv) {
                    marketOddsFramesetDiv.style.display="none";
                  }
                
              
              
                
              
            }
          }
        } else {
        }
      }
    }
  } else {
    
    setClipToWatchCookie(clipId)

    var answer = confirm (gbl_msgLoginConfirm);
    if (answer){
      openWindow(composeExternalUrlWithRetainedParams("https://promo.betfair.com/livevideo/LANGUAGESELECTOR/?origin=LIV_VI_DEO"),'Register','location=yes,menubar=yes,titlebar=yes,toolbar=yes,resizable=yes,scrollbars=yes,width=765,height=670,top=5,left=5');
    }
    else{
      
    }
  }
}

function InitializeTimer(){
  gbl_secs = gbl_repeat_frequency;
  StopTheClock();
  StartTheTimer();
}

function StopTheClock(){
  if(gbl_timerRunning) {
    clearTimeout(gbl_timerID);
  }
  gbl_timerRunning = false;
}

function StartTheTimer(){
  
  if (gbl_firstTimeMarket == true && gbl_secs == gbl_repeat_frequency) {
    gbl_firstTimeMarket = false;
    if (!gbl_gettingMarketData) {
      gbl_gettingMarketData = true;
      try {
        
        sendXMLHttpRequest (document.location.protocol + '//' + document.location.host + "/MarketAjax.do?s=" + gbl_jScriptParamString + "&mi=" + gbl_selectedClip.getMarketId() + "&rnd=" + (Math.round((Math.random()*999999)+1)),getMarketAjax);
      } catch (e) {
        throw (e)
      } finally {
        gbl_gettingMarketData = false;
      }
    } else {
      // Some message about skipping?
    }
  }
  if (gbl_secs==0) {
    StopTheClock();
    if (!gbl_gettingMarketData) {
      gbl_gettingMarketData = true;
      try {
        
        sendXMLHttpRequest (document.location.protocol + '//' + document.location.host + "/MarketAjax.do?s=" + gbl_jScriptParamString + "&mi=" + gbl_selectedClip.getMarketId() + "&rnd=" + (Math.round((Math.random()*999999)+1)),getMarketAjax);
      } catch (e) {
        throw (e)
      } finally {
        gbl_gettingMarketData = false;
      }
      gbl_gettingMarketData = false;
    } else {
      // Some message about skipping?
    }
    InitializeTimer();
  } else {
    gbl_secs = gbl_secs - 1;
    gbl_timerRunning = true;
    gbl_timerID = self.setTimeout("StartTheTimer()", gbl_delay);
  }
}

function sendXMLHttpRequest(url, callback) {
  var request = null;
  if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    request = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (request) {
    //
    // Inner function processing request state changes.
    // Uses the request object defined above
    //
    request.onreadystatechange = function() {
      if (4 == request.readyState) {
        if (200 == request.status) {
          if (null != request.responseXML) {
            callback(request.responseXML);
          }
        } else {
          writeInfo("XMLHttpRequest failed with response code " +
                    request.status, false);
        }
      }
      return;
    }
    request.open("GET", url, true);
    request.send(null);
  } else {
    writeInfo("Browser does not support XMLHttpRequest",false);
  }
  return;
}

function logVideoAjax (responseXML){
  var html="";
  var url="";
  var streamUrl = responseXML.getElementsByTagName('streamUrl');
  try {
    if (streamUrl && streamUrl.length > 0) {
      var errKey = streamUrl[0].getAttribute('error');
      if (errKey) {
        html = '<div class="videoReplace"><span class="InfoText">' + errKey + '</span><br><span class="likeLink" onclick="openWindow(composeExternalUrlWithRetainedParams(\'http://www.betfair.com//?ex=\' + gbl_selectedClip.getExchangeId() + \'&mi=\' + gbl_selectedClip.getMarketId()),\'Betfair\',\'location=yes,menubar=yes,titlebar=yes,toolbar=yes,resizable=yes,width=715,height=800,top=5,left=220\')">Place a bet on this event now</span></div>';
      } else {
          // if its Insinc feed provider
          if(gbl_currentStreamProviderId == 7){
              //
              // for different browsers we have to use specific embed object
              //
              if(gbl_browserName == "IE"){
                  html = "<span id='tvgvideo1'><object id='MSIE' classid='clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6' " +
                                                            "type='video/x-ms-wmv' width='480' height='408'>" +
                            "<param name='URL' value='" + streamUrl[0].getAttribute('url') + "'>" +
                            "<param name='AutoStart' value='true'>" +
                            "<param name='ShowTracker' value='true'>" +
                            "<param name='ShowControls' value='true'>" +
                            "<param name='ShowGotoBar' value='false'>" +
                            "<param name='ShowDisplay' value='false'>" +
                            "<param name='ShowStatusBar' value='false'>" +
                            "<param name='AutoSize' value='true'>" +
                            "<param name='StretchToFit' value='true'>" +
                         "</object></span>";
              } else {
                  html = "<span id='tvgvideo1'><object type='application/x-ms-wmp' id='FireFox' width='480' height='408'>" +
                            "<param name='URL' value='" + streamUrl[0].getAttribute('url') + "'>" +
                            "<param name='AutoStart' value='true'>" +
                            "<param name='ShowTracker' value='true'>" +
                            "<param name='ShowControls' value='true'>" +
                            "<param name='ShowGotoBar' value='false'>" +
                            "<param name='ShowDisplay' value='false'>" +
                            "<param name='ShowStatusBar' value='false'>" +
                            "<param name='AutoSize' value='true'>" +
                            "<param name='StretchToFit' value='true'>" +
                        "</object></span>";
              }
          } else {
              html = "<iframe src='" + streamUrl[0].getAttribute('url') + "' frameborder='0' width='480px' height='408px' marginheight='0' marginwidth='0' scrolling='no' noresize></iframe>";
          }
          if(gbl_currentStreamProviderId == 7 || gbl_currentStreamProviderId == 8){
              clearTimeout(streamCutOffTimeOutId);
              gbl_streamOnline = true;
              streamCutOffTimeOutId = self.setTimeout("StartStreamCutOffChecker()", 30000);
          } else {
              clearTimeout(streamCutOffTimeOutId);
              gbl_streamOnline = false;
          }
      }
    } else {
      html = '<div class="videoReplace"><span class="InfoText">' + gbl_msgErrorGeneral + escape(responseXML.xml) + '</span></div>';
      gbl_streamOnline = false;
    }
  } catch (err)  {
    writeInfo(err.description, false);
    throw (err);
  } finally {
  }
  setStreamProviderClip(html)
}

function getMarketAjax (responseXML) {
  var html='<div id="marketDescription" class="TblBoldHdr"></div>';
  var errhtml="";
  var error = responseXML.getElementsByTagName('error');
  try {
    if (error && error.length > 0) {
      var status = error[0].getElementsByTagName('status');
      var statusCode;
      if (status) {
        for (var kk = 0; kk < status.length; kk++) {
          statusCode = status[0].childNodes[0].nodeValue;
        }
      }
      if ("OK" != statusCode) {
        if ("REDIRECT" == statusCode) {
          errhtml = "Your session has expired, please logout using the link above, and then log back in to resume";
          writeInfo(errhtml, true);
        } else {
          var message = error[0].getElementsByTagName('message');
          if (message) {
            for (var kk = 0; kk < message.length; kk++) {
              errhtml = "Error : " + message[0].childNodes[0].nodeValue;
            }
          } else {
            errhtml = "A technical error has occurred, please try again later.";
          }
          gbl_numConsecutiveErrors ++;
        }
      } else {
        gbl_numConsecutiveErrors = 0;
        writeInfo("", false);
        var status = "";
        var inPlay = 1;
        var marketdata = responseXML.getElementsByTagName('marketdata');
        if (marketdata && marketdata.length > 0) {
          status = getNodeValue(marketdata[0],"status");
          inPlay = getNodeValue(marketdata[0],"inplaydelay");
        }
        if (status == "ACTIVE") {
          var marketName = getNodeValue(responseXML,"marketname");
          html += "<div class='lghtBluBgd'><div class='bodyTxtBold'>" + marketName + "</div>";
          if (inPlay > 0) {
            html += "<img src='./images/icon_inplay_on.gif' height='13' width='13'/>&nbsp;" + gbl_msgMarketInPlay + "<br/>";
          }
          html += '<a href="#" onclick="openMainMarket(' + gbl_selectedClip.getMarketId() + ',' + gbl_selectedClip.getExchangeId() + ')">Go to this market to place a bet</a><br/>';
          html += '<span id="totalMatchedSpan">' + gbl_msgMarketTotalMatched + ': ' + gbl_currencySymbol + parseFloat(getNodeValue(marketdata[0],"totalmatched")).toFixed(0) + '</span><span id="refreshSpan"><!--<button id="btnRefresh" onclick="refreshMarketData()">' + gbl_msgMarketDataRefresh + '</button>--></span>';
          html += "</div>";
          html += "<div id='betting' class='scrollingContent' style='HEIGHT:91px;cursor:pointer;' onclick=\"openMainMarket(" + gbl_selectedClip.getMarketId() + "," + gbl_selectedClip.getExchangeId() + ");\">";
          var runners = responseXML.getElementsByTagName('runner');
          if (runners && runners.length > 0) {
            var percentageBook = marketdata[0].getElementsByTagName('percentagebook');
            var percentageBack = "";
            var percentageLay = "";
            if (percentageBook && percentageBook.length > 0) {
              percentageBack = getNodeValue(percentageBook[0],"back");
              percentageLay = getNodeValue(percentageBook[0],"lay");
              if (percentageBack.length > 0) {
                percentageBack = "(" + percentageBack + ")";
              }
              if (percentageLay.length > 0) {
                percentageLay = "(" + percentageLay + ")";
              }
            }
            html += '<table class="selectTable" summary="' + gbl_msgMarketAbout + '" cellpadding="0" cellspacing="2">';
            html += '<tr>';
            html += '  <td abbr="' + gbl_msgMarketSelections + '">' + gbl_msgMarketSelections + ' (' + runners.length + ')</td>';
            html += '  <td abbr="' + gbl_msgMarketBack + '" class="back">';
            html += '    <span class="bodyTxtBold">' + gbl_msgMarketBack;
            html += '    </span>';
            html += '  </td>';
            html += '  <td abbr="' + gbl_msgMarketLay + '" class="lay">';
            html += '    <span class="bodyTxtBold">' + gbl_msgMarketLay;
            html += '    </span>';
            html += '  </td>';
            html += '</tr>';
            var backOdds;
            //var backAmount;
            var backText;
            var layOdds;
            //var layAmount;
            var layText;
            for (var kk = 0; kk < runners.length; kk++) {
              backOdds = 0;
              //backAmount = 0;
              backText = "";
              layOdds = 0;
              //layAmount = 0;
              layText = "";
              var back = runners[kk].getElementsByTagName('back');
              var lay = runners[kk].getElementsByTagName('lay');
              if (back && back.length > 0) {
                backOdds = getNodeValue(back[0],"odds");
                //backAmount = getNodeValue(back[0],"amount");
              }
              if (lay && lay.length > 0) {
                layOdds = getNodeValue(lay[0],"odds");
                //layAmount = getNodeValue(lay[0],"amount");
              }
              if (backOdds ==0) {
                backText = gbl_msgMarketOffer;
              } else {
                backText = "<span>" + backOdds + "</span>";
                //"<br><span>" + gbl_currencySymbol + backAmount + "</span>";
              }
              if (layOdds ==0) {
                layText = gbl_msgMarketOffer;
              } else {
                layText = "<span >" + layOdds + "</span>";
                //"<br><span>" + gbl_currencySymbol + layAmount + "</span>";
              }
              if (runners && runners.length > 0) {
                html += "<tr><td class='bodyTxtBold' id=" + getNodeValue(runners[kk],"id") + ">"+ getNodeValue(runners[kk],"name") + "</td><td class='back'>" + backText + "</td><td class='lay'>" + layText + "</td></tr>";
              }
            }
            html += "</table>";
            
          } else {
            html += "No runners";
          }
        } else {
          html += '<div class="InfoText">Market Not Active</div>';
        }
        var data = responseXML.getElementsByTagName('sessionToken');
        if(data) {
          for (var kk = 0; kk < data.length; kk++) {
            //updateSessionToken(data[kk].childNodes[0].nodeValue);
          }
        }
        html += "</div>";
        var marketOddsDiv = document.getElementById("marketOdds");
        if (marketOddsDiv) {
          marketOddsDiv.innerHTML = html;
        }
        
        var marketDescription = document.getElementById("marketDescription");
        if (marketDescription) {
          marketDescription.innerHTML= gbl_selectedClip.clipDescription + '&nbsp;' + gbl_msgMarketOdds;
        }
      }
    }
  } catch (err)  {
    gbl_numConsecutiveErrors ++;
    throw (err);
  } finally {
    var refreshButton = document.getElementById("btnRefresh");
    if(refreshButton) {
      refreshButton.disabled=false;
    }
  }
  
  if (errhtml.length > 1 && gbl_numConsecutiveErrors >= gbl_maxConsecutiveErrors) {
    writeInfo(errhtml, false);
  }
}

function keepAlive (responseXML){
  var data = responseXML.getElementsByTagName('sessionToken');
  if(data) {
    for (var i = 0; i < data.length; i++) {
      //updateSessionToken(data[i].getAttribute("value"));
    }
  }
}

function InitializeRefreshTimerFast(){
    // Set the length of the timer, in seconds
    gbl_refreshSecsFast = 55;
    StopTheRefreshClockFast();
    StartTheRefreshTimerFast();
}

function StopTheRefreshClockFast(){
    if(gbl_refreshTimerRunningFast) {
      clearTimeout(gbl_refreshTimerIDFast);
    }
    gbl_refreshTimerRunningFast = false;
}

function StartTheRefreshTimerFast(){
  if (gbl_refreshSecsFast==0) {
    StopTheRefreshClockFast();
    InitializeRefreshTimerFast();
    updateEventsSource();
    self.setTimeout("writeClipsTables()", 5000);  
  } else {
    gbl_refreshSecsFast = gbl_refreshSecsFast - 1;
    gbl_refreshTimerRunningFast = true;
    gbl_refreshTimerIDFast = self.setTimeout("StartTheRefreshTimerFast()", gbl_delay);
  }
}


function InitializeRefreshTimer(){
    // Set the length of the timer, in seconds
    gbl_refreshSecs = 1800;
    StopTheRefreshClock();
    StartTheRefreshTimer();
}

function StopTheRefreshClock(){
    if(gbl_refreshTimerRunning) {
      clearTimeout(gbl_refreshTimerID);
    }
    gbl_refreshTimerRunning = false;
}

function StartTheRefreshTimer(){
  if (gbl_refreshSecs==0) {
    StopTheRefreshClock();
    
      
        if (GetCookie("usrtag") != null && gbl_sessionTokenId.length > 0 && "null" != gbl_sessionTokenId ) {
          sendXMLHttpRequest (document.location.protocol + '//' + document.location.host + "/KeepAlive.do?s=" + gbl_jScriptParamString  + "&rnd=" + (Math.round((Math.random()*999999)+1)),keepAlive);
        }
      
    
    
    jsDataUpdater();
    InitializeRefreshTimer();
  } else {
    gbl_refreshSecs = gbl_refreshSecs - 1;
    gbl_refreshTimerRunning = true;
    gbl_refreshTimerID = self.setTimeout("StartTheRefreshTimer()", gbl_delay);
  }
}

function getNodeValue(nodelist,nodeName) {
  var data = nodelist.getElementsByTagName(nodeName);
  var result = "";
  if (data && data.length > 0) {
    result = data[0].childNodes[0].nodeValue;
  }
  return result;
}

function validateLogin() {
  var result = true;
  var username = document.forms["loginform"].username;
  var password = document.forms["loginform"].password;
	var expiryDate = new Date();
	expiryDate.setFullYear(expiryDate.getFullYear() + 1);
  if (username && password){
    if (username.value=="" || username.value==null || password.value=="" || password.value==null){
      alert (gbl_msgErrorNoLoginValues);
      result = false;
    }
  }
  var tandcs = document.forms["loginform"].tandcs;
  if (tandcs) {
    if (tandcs.checked == false && GetChip ("video", "tandcs")  != 1) {
      //tandcs.style.backgroundColor = '#FFCCCC';
      tandcs.focus();
      alert (gbl_msgErrorAcceptTandCs);
      result = false;
    } else {
      SetChip ("video", "tandcs",1, expiryDate);
    }
  }
  
	expiryDate = new Date();
  var minutes = expiryDate.getMinutes();
  minutes += 5;
  expiryDate.setMinutes(minutes);
	SetChip ("rlogin","rl",1, expiryDate);
  document.forms["loginform"].action = composeExternalUrlWithRetainedParams("https://" + document.location.host + "/Loginsubmit.do");
  return result;
}

function openMainMarket(marketId,exchangeId) {
  var targetUrl = composeMainSiteMarketPath( marketId,exchangeId);
  if (window.opener && window.opener.location && !window.opener.closed ){
    window.opener.location.href = targetUrl;
    window.opener.focus();
  } else {
    openWindow(targetUrl,'BetfairMain','location=yes,menubar=yes,titlebar=yes,toolbar=yes,resizable=yes,width=700,height=800,top=5,left=420');
  }
  return false;
}

function toggleVideoPlayerSize () {
  var toggler = null;
  var player = document.getElementById("videoPlayer");
  if (gbl_bigsize) {
    if (player) {
      document.getElementById("navigation").style.display="none";
      document.getElementById("tab1").style.display="none";
      document.getElementById("videoPlayerTease").style.display="none";
      document.getElementById("streamInfo").style.display="none";
      document.getElementById("warningDiv").style.display="none";
      document.getElementById("footer").style.display="none";
      document.getElementById("rightpane").style.display="none";
      document.getElementsByTagName("body")[0].style.overflowX = "hidden";
      player.style.display="block";
      gbl_bigsize = false;
      window.resizeTo(520,610)
      toggler = document.getElementById("togglePlayer");
      if (toggler) {
        toggler.innerHTML = gbl_msgShowFullSite;
      }
    }
  } else {
    if (player) {
      document.getElementById("navigation").style.display="block";
      document.getElementById("tab1").style.display="none";
      document.getElementById("videoPlayerTease").style.display="none";
      document.getElementById("streamInfo").style.display="block";
      document.getElementById("warningDiv").style.display="block";
      document.getElementById("footer").style.display="block";
      document.getElementById("rightpane").style.display="block";
      document.getElementsByTagName("body")[0].style.overflowX = "auto";  
      player.style.display="block";
      gbl_bigsize = true;
      window.resizeTo(930,775)
      toggler = document.getElementById("togglePlayer");
      if (toggler) {
        toggler.innerHTML = gbl_msgShowPlayerOnly;
      }
    }
  }
}

function setStreamProviderClip (html) {
  var vidIframe = document.getElementById("videoPlayerIFrame");
  if (vidIframe) {
    vidIframe.innerHTML = html;
  }
}

function showDemo() {
  setStreamProviderClip("");
  document.getElementById("videoPlayer").style.display="none";
  document.getElementById("videoPlayerTease").style.display="none";
  document.getElementById("tab1").style.display="block";
  var demoplayer = document.getElementById("objDemoMediaPlayer");
  if (demoplayer) {
    play(demoplayer);
  }
}

function hideDemo() {
  var demoplayer = document.getElementById("objDemoMediaPlayer");
  if (demoplayer && gbl_browserName == "IE"){
    demoplayer.stop();
  }
  document.getElementById("tab1").style.display="none";
  document.getElementById("videoPlayer").style.display="none";
  document.getElementById("videoPlayerTease").style.display="block";
}

function writeInfo(infoText,obvious) {
  var info = document.getElementById("infoSpan");
  if (info) {
    if (obvious) {
      info.innerHTML = infoText;
    } else {
      info.innerHTML = '<div class="hidden">' + infoText + '</div>';
    }
  }
}

function refreshMarketData () {
  gbl_firstTimeMarket = true;
  var refreshButton = document.getElementById("btnRefresh");
  if(refreshButton) {
    refreshButton.disabled=true;
  }
  InitializeTimer();
}

function showMarketLinks (clip) {
  gbl_selectedClip = clip;
  var html = "";
  if (clip && clip.arrayMarketIds && clip.arrayMarketIds.length) {
    if (clip && clip.arrayMarketDescs && clip.arrayMarketDescs.length && clip.arrayMarketDescs.length == clip.arrayMarketIds.length) {
      for (var jj = 0;jj < clip.arrayMarketIds.length; jj++) {
        html += '<a href="#" onclick="openMainMarket(' + clip.arrayMarketIds[jj] + ',' + clip.getExchangeId() + ')">' + clip.arrayMarketDescs[jj] + '</a><br/><br/>';
      }
    }
  }
  var marketLinksDiv = document.getElementById("marketLinks");
  if(marketLinksDiv) {
    marketLinksDiv.innerHTML=html;
  }
}

function composeMainSiteMarketPath (marketId,exchangeId) {
  var origin;
  if (typeof qs['origin'] != "undefined") {
    origin = qs['origin'];
  } else {
    origin = GetChip("video","origin");
  }
  return 'http://www.betfair.com/?ex=' + exchangeId + '&mi=' + marketId + '&rfr=3952&origin=' + origin;
}

function composeExternalUrlWithRetainedParams (url) {
  
  var rExp;
  if (gbl_userCountry=="IT") {
    rExp = /www.betfair.com/g
    url = url.replace(rExp,"w-gen.betfair.com");
    rExp = /promo.betfair.com/g
    url = url.replace(rExp,"w-gen.betfairpromo.com");
  } else {
  }
  
  rExp = /LANGUAGESELECTOR/g
  url = url.replace(rExp,gbl_language);
  
  var urlQs = new Array();
  var lastQMark = url.lastIndexOf("?");
  if (url != "" && lastQMark > -1) {
    var varArray = url.substring(
                     lastQMark + 1,
                     url.length
                   ).split("&");
  } else {
    var varArray = Array();
  }
  for (var ii = 0; ii < varArray.length; ii++) {
    if (varArray[ii] != "") {

  var varValueArray = varArray[ii].split("=");
      if (varValueArray.length == 1) {
        varValueArray[1] = '';
      }
      if (typeof urlQs[varValueArray[0]] != "undefined" && varValueArray[0] != "") {
        if (typeof urlQs[varValueArray[0]] == "object") {
          urlQs[varValueArray[0]].push(varValueArray[1]);
        } else {
          var valueArray = new Array(urlQs[varValueArray[0]],varValueArray[1]);
          urlQs[varValueArray[0]] = valueArray;
        }
      } else {
        urlQs[varValueArray[0]] = varValueArray[1];
      }
    }
  }
  var origin = "";
  if (typeof qs['origin'] != "undefined") {
    origin = qs['origin'];
  } else if (typeof urlQs['origin'] != "undefined") {
    origin = urlQs['origin'];
  } else {
    origin = GetChip("video","origin");
  }
  if (null == origin || origin.length < 1) {
    origin = "LIV_VI_DEO";
  }
  var referer = "";
  if (typeof qs['rfr'] != "undefined") {
    referer = qs['rfr'];
  } else if (typeof urlQs['rfr'] != "undefined") {
    referer = urlQs['rfr'];
  } else {
    referer = 3952;
  }
  var paramsRetained = "";
  for ( keyVar in urlQs ) {
    if (keyVar != "" && keyVar != 'rfr' && keyVar != 'origin') {
      paramsRetained += "&" + keyVar + "=" + urlQs[keyVar];
    }
  }
  for ( keyVar in qs ) {
    
    if (keyVar != "" && keyVar != 'rfr' && keyVar != 'origin' && keyVar != 'errTrans' && keyVar != PARAM_NAME_LOCALE && keyVar != 'eventId' && keyVar != 'clipId' && keyVar != 'mi' && keyVar != 'eID') {
      paramsRetained += "&" + keyVar + "=" + qs[keyVar];
    }
  }
  var result;
  if (lastQMark > -1) {
    result = url.substring(0,url.lastIndexOf("?")) + '?rfr=' + referer + '&origin=' + origin + '&' + PARAM_NAME_LOCALE + '=' + (gbl_language=="cs"?"cz":gbl_language) + paramsRetained;
  } else {
    result = url + '?rfr=' + referer + '&origin=' + origin + '&' + PARAM_NAME_LOCALE + '=' + (gbl_language=="cs"?"cz":gbl_language) + paramsRetained;
  }
  return result;
}


function doLanguageSubmission() {
  document.forms["changeLanguageForm"].action = composeExternalUrlWithRetainedParams(document.forms["changeLanguageForm"].action);
  document.forms["changeLanguageForm"].submit();
}

function setDropDownValue(dropDownName,value,defaultIndex) {
  selList = document.getElementById(dropDownName);
  result = false;
  if (selList != null) {
    var loop;
    var foundValue = false;
    for (loop=0; loop < selList.length; loop++) {
      if (selList[loop].value == value) {
        selList.selectedIndex = loop;
        foundValue = true;
      }
    }
    if (foundValue) {
      result = true;
    }
    else {
      selList.selectedIndex = defaultIndex;
      result = false;
    }
  } else {
    result = false;
  }
  return result;
}

function handleIncomingEventsOrDeferredLoginSelections() {
  var incomingId;
  var incomingClipId;
  if (typeof qs['clipId'] != "undefined") {
    incomingClipId = qs['clipId'];
  } else if (typeof qs['eventId'] != "undefined") {
    incomingId = qs['eventId'];
    var incomingClip = getClipFromProviderEventId(incomingId)
    if (null != incomingClip){
      incomingClipId = incomingClip.getClipId();
    }
  } else if (typeof qs['mi'] != "undefined") {
    incomingId = qs['mi'];
    var incomingClip = getClipFromMarketId(incomingId)
    if (null != incomingClip){
      incomingClipId = incomingClip.getClipId();
    }
  } else if (typeof qs['eID'] != "undefined") {
    incomingId = qs['eID'];
    var incomingClip = getClipFromBetfairMarketEventId(incomingId)
    if (null != incomingClip){
      incomingClipId = incomingClip.getClipId();
    }
  }
  
  if (GetCookie("usrtag") != null && gbl_sessionTokenId.length > 0 && "null" != gbl_sessionTokenId) {
    if (null != incomingClipId){
      selectClip (incomingClipId);
    } else {
      var clipIdToShow = GetChip ("SelClip", "clipVwId");
      if (clipIdToShow != null && clipIdToShow != "") {
        selectClip (clipIdToShow);
        DeleteCookie("SelClip");
      }
    }
  } else {
    
    if (null != incomingClipId){
      setClipToWatchCookie(incomingClipId);
    }
  }
}

function setClipToWatchCookie(clipId) {
  var expiryDate = new Date();
  var minutes = expiryDate.getMinutes();
  minutes += 5;
  expiryDate.setMinutes(minutes);
  SetChip ("SelClip", "clipVwId",clipId, expiryDate)
}


function getClipFromProviderEventId(eventId) {
  var clip = null;
  var foundIt = false;
  for (var ii=0; ii < clipsArray.length && !foundIt; ii++){
		if (clipsArray[ii].getPvdrEventId() == eventId) {
			clip = clipsArray[ii];
			var foundIt = true;
			break;
		}
  }
  return clip;
}


function getClipFromBetfairMarketEventId(eventId) {
  var clip = null;
  var foundIt = false;
  for (var ii=0; ii < clipsArray.length && !foundIt; ii++){

		if (clipsArray[ii].getMarketEventId() == eventId) {
			clip = clipsArray[ii];
			var foundIt = true;
			break;
		}	else {
			
			var subEvents = clipsArray[ii].getArrayMarketEventIds();
			if (subEvents) {
				for (var jj=0; jj < subEvents.length && !foundIt; jj++){
					if (subEvents[jj] == eventId) {
						clip = clipsArray[ii];
						foundIt = true;
						break;
					}
				}
			}
		}
  }
  return clip;
}


function getClipFromMarketId(marketId) {
  var clip = null;
  var foundIt = false;
  for (var ii=0; ii < clipsArray.length && !foundIt; ii++){
    if (clipsArray[ii].getMarketId() == marketId) {
      clip = clipsArray[ii];
      foundIt = true;
      break;
    }
    var subMarkets = clipsArray[ii].getArrayMarketIds();
    for (var jj=0; jj < subMarkets.length && !foundIt; jj++){
      if (subMarkets[jj] == marketId) {
        clip = clipsArray[ii];
        foundIt = true;
        break;
      }
    }
  }
  return clip;
}


function doLogout() {
  DeleteCookie ("ssoid");
  DeleteCookie ("bsessionid");
  DeleteCookie ("csessionid");
  DeleteCookie ("JSESSIONID");
	
	try {
		if (window.opener && window.opener.top && window.opener.top.location && !window.opener.top.closed ){
		  window.opener.top.location.reload(true);
		}
	} catch (err) {
		
	}
  document.location.href = "./Logout.do"
}

function StartStreamCutOffChecker(){
    if(gbl_currentMarketId != null) {
        if (gbl_currentStreamProviderId == 7 || gbl_currentStreamProviderId == 8){
            sendXMLHttpRequest(document.location.protocol + '//' + document.location.host + "/CutOffStream.do?s=" + gbl_jScriptParamString + "&marketId=" + gbl_currentMarketId + "&rnd=" + (Math.round((Math.random()*999999)+1)), streamCutOffAjax);
        }
    }
}

function streamCutOffAjax(responseXML){
    var html="";
    var market = responseXML.getElementsByTagName('market');
    
    if(market[0].getAttribute('status') == 'ERROR'){
        html = '<div style="width:480px; height: 408px;"><table width="100%" height="408">' +
               '<tr><td valign="center" align="center">' + '<div style="font-size: 14px;" align="center"><font color="red">There has been a fault.</font><br/>Our technical team are working to resolve this as soon as possible.<br/>Please check back shortly, or <b>try again now.</b></div>' +
               '</td></tr></table></div>';
        gbl_streamOnline = false;
        clearTimeout(streamCutOffTimeOutId);
        setStreamProviderClip(html);
    } else if(market[0].getAttribute('status') != 'CLOSED'){
        if(gbl_streamOnline){
            clearTimeout(streamCutOffTimeOutId);
            streamCutOffTimeOutId = self.setTimeout("StartStreamCutOffChecker()", 30000);
        } else {
            clearTimeout(streamCutOffTimeOutId);
            var clip = getClipFromMarketAndProviderIds(gbl_currentMarketId, gbl_currentStreamProviderId);
            sendXMLHttpRequest (document.location.protocol + '//' + document.location.host + "/LogVideo.do?s=" + gbl_jScriptParamString + "&eventId=" + clip.getPvdrEventId() + "&mi=" + clip.getMarketId() + "&drm=" + clip.getApplyDrm() + "&pvdr=" + clip.getProviderId() + "&arch=" + clip.isArchiveClip() + "&loc=" + clip.getLocation() + "&pre=" + clip.getLeadInMinutes() + "&startTime=" + clip.getClipStartTimeFormatted() + "&bbv=" + clip.getBBVMarketIdsFormatted() + "&ex="  + clip.getExchangeId() + "&flash=1&sub="  + clip.getSubId() + "&subd="  + clip.getSubDate() + "&ev="  + clip.getMarketEventId() +  "&rnd=" + (Math.round((Math.random()*999999)+1)),logVideoAjax);
        }
    } else {
        html = '<div style="width:480px; height: 408px;"><table width="100%" height="408">' +
               '<tr><td valign="center" align="center">' + '<div style="font-size: 14px;" align="center"><font color="red">This race is now finished.</font><br/>Please select another event from the menu on the right.</div>' +
               '</td></tr></table></div>';
        clearTimeout(streamCutOffTimeOutId);
        gbl_streamOnline = false;
        setStreamProviderClip(html);
    }
}

function getClipFromMarketAndProviderIds(marketId, providerId) {
  var clip = null;
  for (var ii=0; ii < clipsArray.length; ii++){
    if (clipsArray[ii].getMarketId() == marketId) {
        if (clipsArray[ii].getProviderId() == providerId) {
            clip = clipsArray[ii];
            break;
        }
    }
  }
  return clip;
}

function updateEventsSource(){
    var newScript = document.createElement("script");
    newScript.id = "eventsLib";
    newScript.type = "text/javascript";
    newScript.language = "JavaScript";
    newScript.src = gbl_JScriptPath + "?rnd=" + (Math.round((Math.random()*999999)+1));
    var originScript  = document.getElementById("eventsLib");
    originScript.parentNode.replaceChild(newScript, originScript);
}


