




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 = "www222.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 (gbl_OSname != "Win" || gbl_browserName != "IE") {    
     writeInfo("Horseracing events require Internet Explorer on PC platform - please see  <a href='#' onclick='toggleDivs(2,4,false);return false;'>FAQs</a>",true);
   }
  
  
  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_mustUseFlashVids = false;
    var flashPref = GetChip("video", "wmp");
    if (flashPref == 0) {
      gbl_wantUseFlashVids = true;
      var flashPref = document.getElementById("flashPref");
      if (flashPref) {
        flashPref.checked = true;
      }
    } else if (flashPref == 1) {
      gbl_wantUseFlashVids = false;
      var wmpRadio = document.getElementById("wmplrPref");
      if (wmpRadio) {
        wmpRadio.checked = true;
      }
    } else {
          
      gbl_wantUseFlashVids = true;
    }
  } else {
    gbl_mustUseFlashVids = true;
    gbl_wantUseFlashVids = true;
  }  
  
  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;
    }
  }
  
  if (!hideRow) {    
    if (gbl_mustUseFlashVids) {
      hideRow = (gbl_providerFlashSupportHash[clipsArray[ii].getProviderId()]?false:true);
    }
  }
  return hideRow ;
}
 
function selectClip (clipId) {
	      
  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)
                              
              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="  + (gbl_wantUseFlashVids?1:0) + "&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 {
        html = "<iframe src='" + streamUrl[0].getAttribute('url') + "' frameborder='0' width='480px' height='408px' marginheight='0' marginwidth='0' scrolling='no' noresize></iframe>";
      }
    } else {
      html = '<div class="videoReplace"><span class="InfoText">' + gbl_msgErrorGeneral + escape(responseXML.xml) + '</span></div>';
    }
  } 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 = 60;
    StopTheRefreshClockFast();
    StartTheRefreshTimerFast();
}
      
function StopTheRefreshClockFast(){
    if(gbl_refreshTimerRunningFast) {
      clearTimeout(gbl_refreshTimerIDFast);
    }
    gbl_refreshTimerRunningFast = false;
}
    
function StartTheRefreshTimerFast(){
  if (gbl_refreshSecsFast==0) {
    StopTheRefreshClockFast();
    InitializeRefreshTimerFast();
    writeClipsTables();       
  } 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";
      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";
      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,"www222.betfair.com");
    rExp = /promo.betfair.com/g
    url = url.replace(rExp,"www222.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 saveFlashPrefs(type) {
  var expiryDate = new Date();
  expiryDate.setFullYear(expiryDate.getFullYear() + 1);
  if (type==0) {
    SetChip ("video", "wmp","0", expiryDate);
    gbl_wantUseFlashVids = true;
  } else {
    SetChip ("video", "wmp","1", expiryDate);
    gbl_wantUseFlashVids = false;
  }
}

  
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 = getClipFromEventIdOrMarketEventId(incomingId,false)
    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 = getClipFromEventIdOrMarketEventId(incomingId,true)
    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 getClipFromEventIdOrMarketEventId(eventId,searchMarketEventInstead) {
  var clip = null;
  for (var ii=0; ii < clipsArray.length; ii++){      
    if (!searchMarketEventInstead) {
			if (clipsArray[ii].getPvdrEventId() == eventId) {
				clip = clipsArray[ii];
				break;
			}
		} else {
			if (clipsArray[ii].getMarketEventId() == eventId) {
				clip = clipsArray[ii];
				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"
}