﻿
// JScript File
var strBooks;
var currentLeague = 0;  

var today = new Date();		
var curr_month = today.getMonth();
curr_month++;
var dateString =  today.getDate() +"."+ curr_month +"."+ today.getFullYear();

var scores_secs; 
var odds_secs;
var scores_refresh = 0;
var timerID = null;
var timerRunning = false;
var delay = 1000;
var updateInterval = 2000;
var eventsList = "";
 var sportStickyTypes="";
var selectedOddType1="spread"; var selectedOddType2="spread"; var selectedOddType3="spread"; var selectedOddType4="spread"; var selectedOddType5="ml";var selectedOddType6="ml";var selectedOddType7="spread";var selectedOddType8="spread";var selectedOddType9="spread";var selectedOddType10="spread";

var mySportIDs=new Array("1","2","3", "4", "5", "6", "7","8", "9", "10");

var arraySpreadObjects;
var arraySpreadFirstObjects;
var arraySpreadSecondObjects;
var arrayMLObjects;  
var arrayBookObjects;
var arrayBookNoVegasObjects;

var LastUpdateTime = "";

 var myTab; 
    var FirstTab; 
    var SecondTab; 
    var spreadTab; 
    var mlTab; 


function InitializeTimer()
{
	// Set the length of the timer, in seconds
	scores_secs = 15;
	//StopTheClock();
	StartTheTimer();
}


function StopTheClock()
{
    //if(timerRunning)
	//clearTimeout(timerID);
    //timerRunning = false;
}

function StartTheTimer()
{
	
    if (scores_secs==0)
    {
	    //StopTheClock();
	    // Here's where you put something useful that's
	    // supposed to happen after the allotted time.
	    // For example, you could display a message:
	     var today = new Date();		
	    timestring =  today.getHours() +"."+ today.getMinutes() +"."+ today.getSeconds();
	    //writeHistory( "called UpdateScoresAndStatus: " + timestring );
	    //UpdateScoresAndStatus();
	    scores_secs = 15;
	    scores_refresh ++;
	    if (scores_refresh > 12)
	    {
	        scores_refresh = 0;
	          var today = new Date();		
	    timestring =  today.getHours() +"."+ today.getMinutes() +"."+ today.getSeconds();
	    //writeHistory( "called UpdateOddsboard: " + timestring );
	        
	        UpdateOddsboard();
	    }
	    
	    //timerRunning = true;
	    //timerID = self.setTimeout("StartTheTimer()", delay);
    }
    else
    {
	    //remove this line for prod.  it displays the timer in the status bar
	    self.status = scores_secs;
	    scores_secs = scores_secs - 1;
	    //timerRunning = true;
	    //timerID = self.setTimeout("StartTheTimer()", delay);
    }
}

function InitializePage(){
    UpdateOddsboard();
    InitializeTimer();
   
}

function setLeagueGames(){
    //writeHistory('setLeagueGames Start' + new Date());
            rejuvinate();
             //set the default tab class
            setPreTabs();         
            window.setTimeout("InitializePage()", 1000);           

}



function rejuvinate(){
        var hiddenLeagueEvents = document.getElementById("hiddenLeagueGames");
         if (hiddenLeagueEvents != null){
             //eventsList = hiddenLeagueEvents.value;
             
             eventsList = GetCookieGames(); 
            
             eventListArray = eventsList.split("."); 
             
             arraySpreadObjects = new Array(eventListArray.length-1); 
             arraySpreadFirstObjects = new Array(eventListArray.length-1);
             arraySpreadSecondObjects = new Array(eventListArray.length-1);
             arrayMLObjects = new Array(eventListArray.length-1);
             arrayBookObjects = new Array(eventListArray.length-1); 
             arrayBookNoVegasObjects = new Array(eventListArray.length-1);  
             
             writeHistory("preArray: "  + new Date());
             
             for(var t=0;t<eventListArray.length-1;t++){
                arraySpreadObjects[t] = document.getElementById("divSpread_"+eventListArray[t]);
                arrayMLObjects[t] = document.getElementById("divML_"+eventListArray[t]);
                arraySpreadFirstObjects[t] = document.getElementById("divSpreadFirst_"+eventListArray[t]);
                arraySpreadSecondObjects[t] = document.getElementById("divSpreadSecond_"+eventListArray[t]);
                arrayBookObjects[t] = document.getElementById("divBook_"+eventListArray[t]); 
                arrayBookNoVegasObjects[t] = document.getElementById("divBookNoVegas_"+eventListArray[t]);  
            }
             
             writeHistory("postArray: "  + new Date());
         
         }
           //writeHistory('setLeagueGames end' + new Date());
           
           hiddenLeague_ID = document.getElementById("hiddenLeagueID");
           if (hiddenLeague_ID != null){ 
                FirstTab = document.getElementById("1st_" + hiddenLeague_ID.value);
                SecondTab = document.getElementById("2nd_" + hiddenLeague_ID.value);
                spreadTab = document.getElementById("spread_" + hiddenLeague_ID.value);
                mlTab = document.getElementById("ml_" + hiddenLeague_ID.value);
            
            }
}


function UpdateStickyOddTypes(){
     sportStickyTypes = "";
     for(var t=1;t<11;t++){
        eval( "var local = selectedOddType"+t);
        if(local != ""){
            sportStickyTypes = sportStickyTypes + t + "." + local + "|";
        }   
    }
 }

//updates all oddsboards 
function UpdateOddsboard(){	
    UpdateStickyOddTypes();
	AjaxUpdates.UpdateCustomOddsboards(GetCookieBooks(), GetCookieGames(), 'true', sportStickyTypes, UpdateOddsContainer_callback);	 
	
}

function UpdateScoresAndStatus(){
    AjaxUpdates.UpdateScoreboard(GetCookieBooks(), GetCookieGames(), 'true', LastUpdateTime, UpdateScoresContainer_callback);		
}

function UpdateScoresContainer_callback(response){

    try{
        //check for HTTP ERROR Status
        if (response.request.status < 400){ 
              var oddscontainerresponse = response.value;       
              
              LastUpdateTime = response.LastUpdateTime;
              
              if (LastUpdateTime == null){
                 LastUpdateTime = "";
              }         
             
                    if (oddscontainerresponse.OddsBoardResponseList != null){ 
                      var OddsboardResponseList = oddscontainerresponse.OddsBoardResponseList;
                      
                      for (var ii=0; ii<OddsboardResponseList.length; ii++)
                      {
                         //do not reload the page, only the specific game 
                              var GameResponseList = OddsboardResponseList[ii].GameResponseList;
                            
                              for (var i=0; i<GameResponseList.length; i++)
                              { 
                                    var EventID = GameResponseList[i].EventID;   
                                    var LeagueID = GameResponseList[i].LeagueID;                                  
                                  
                                    var StatusRowID = "StatusRow_" + LeagueID +"_"+GameResponseList[i].EventID; 
                                    var ScoreRowID = "ScoreRow_" + LeagueID +"_"+GameResponseList[i].EventID; 
                                
                                    var statusDiv = document.getElementById(StatusRowID);                            
                                    if (statusDiv != null)
                                    {
                                        statusDiv = GameResponseList[i].StatusHTML;  
                                    }     
                                    
                                    var scoreDiv = document.getElementById(ScoreRowID);  
                                    if (scoreDiv != null)
                                    {
                                        scoreDiv = GameResponseList[i].ScoreHTML;  
                                    } 
                                    
                                }                       
                              
                           } 
                           
                       }
                       
            }     
     }catch(err){    
         var sbDiv = document.getElementById("CustomOddsContainer");     
         if (sbDiv != null){
              sbDiv.innerHTML = "Error: Please contact system administrator";
         }
    }

       
}

function UpdateOddsContainer_callback(response){

    try{
    
               //check for HTTP ERROR Status
                if (response.request.status < 400){
                     var oddscontainerresponse = response.value;
                     var OddsHTML = oddscontainerresponse.OddsContainerHTML;
                     
                     //chop off the container DIV
                     OddsHTML = OddsHTML.substring(OddsHTML.indexOf('<h3>'), (OddsHTML.length - 6));                     
                     
                     var sbDiv = document.getElementById("CustomOddsContainer");
                     eventsList = GetCookieGames(); 
                     
                     if (sbDiv != null){
                          sbDiv.innerHTML = OddsHTML;
                          
                     }
                     
                             
                         rejuvinate();                        
                         //league = document.getElementById("hiddenLeagueID").value
                            // SetTabClass(league, selectedOddType);
                }
     
      }catch(err){    
         var sbDiv = document.getElementById("CustomOddsContainer");     
         if (sbDiv != null){
              sbDiv.innerHTML = "Error: Please contact system administrator";
         }
      }

} 

function LeagueDDLChange(){

    var LeagueDDL = document.getElementById("LeagueDDL")

    var old_gameSelector = document.getElementById("game_selector_"+currentLeague);
    
    if (old_gameSelector != null){
        old_gameSelector.style.display = "none";
    }
    currentLeague = LeagueDDL.options[LeagueDDL.selectedIndex].value;
    var new_gameSelector = document.getElementById("game_selector_"+currentLeague);
    
    if (new_gameSelector != null){
        new_gameSelector.style.display = "block";
    }
}

function GetCookieBooks(){
    return Get_Cookie("book_selector-"+dateString);  
    //return "wsex.bodog.pinnacle.";
}

function GetCookieGames(){

    var cookieGames = ""; 
	//var LeagueDDL = document.getElementById("LeagueDDL")   
	var selectedleaguesCookie = Get_Cookie("SelectedLeagues");   
	
	var selectedleagues = selectedleaguesCookie.split(".");
	
       for (var i=0;i<selectedleagues.length-1; i++){        
             var LeagueID = selectedleagues[i];   //LeagueDDL.options[i].value;            
            cookieGames = cookieGames + Get_Cookie("game_selector_"+LeagueID+"-"+dateString);        
        }
    return cookieGames;       
   
}

function AddRemoveBook(){
    UpdateStickyOddTypes();
    AjaxUpdates.UpdateCustomOddsboards(GetCookieBooks(), GetCookieGames(), 'true', sportStickyTypes, UpdateOddsContainer_callback);	
}

function AddRemoveGame(){
   UpdateStickyOddTypes();
   AjaxUpdates.UpdateCustomOddsboards(GetCookieBooks(), GetCookieGames(), 'false', sportStickyTypes, UpdateOddsContainer_callback);	
}


function getEventsString(){

   var events = "";
   var LeagueDDL = document.getElementById("LeagueDDL")
    
   
   for (var i=0;i<LeagueDDL.options.length; i++){
        
        var LeagueID = LeagueDDL.options[i].value;
        var gameSelector = document.getElementById("game_selector_"+LeagueID+"_right");
        
        for (var j=0; j<gameSelector.options.length; j++){
            events = events + gameSelector.options[j].value + "|";
        } 
   }
   
   return events;
}

 
function GetOddsByType(type, league){
//writeHistory("S-preGetOddsByType");
//alert("GetOddsByType:" + type + "_" + league);
////writeHistory('7' + new Date());
var leagueID;   


                if (league == '1'){
			        selectedOddType1 = type;
			    }else if(league == '2'){
			         selectedOddType2 = type;
			    }else if(league == '3'){
			         selectedOddType3 = type;
			    }else if(league == '4'){
			         selectedOddType5 = type;
			    }else if(league == '5'){
			         selectedOddType5 = type;
			    }else if(league == '6'){
			         selectedOddType6 = type;
			    }else if(league == '7'){
			         selectedOddType7 = type;
			    }else if(league == '8'){
			         selectedOddType8 = type;
			    }else if(league == '9'){
			         selectedOddType9 = type;
			    }else if(league == '10'){
			         selectedOddType10 = type;			    
			    }
	
var _hasVegas;

             _hasVegas = true;
             if (((league == '1') || (league == '2') || (league == '7') || (league == '8') ||(league == '9')) && (! (type == 'spread')))
                     _hasVegas = false;     
                 
             if (league == null){
                  league = document.getElementById("hiddenLeagueID").value;                
             }
                 
                 ////writeHistory('pre9' + new Date());
             for (var i=0;i<eventListArray.length-1; i++){
                var divGame;
                
                if  (league != null){
                 ////writeHistory('9' + new Date());
                
                    if (eventListArray[i].indexOf(league + "_") != -1){
                            clearOddsDivs( i);
                       
                         if (arraySpreadObjects[i] != null ) {
                           if ( type == "spread"){
                             arraySpreadObjects[i].className = "visible";  
                             //arraySpreadObjects[i].style.display = "block";  
                             SetTabClass(league, 'spread');                     
                           } else {
                             //arraySpreadObjects[i].className = "hidden";                      
                           }    
                         }                     
                       
                         if (arrayMLObjects[i] != null){
                             
                            if ( type == "ml"){
                             arrayMLObjects[i].className = "visible"; 
                              //arrayMLObjects[i].style.display = "block";       
                             SetTabClass(league, 'ml');                     
                           } else {
                             //arrayMLObjects[i].className = "hidden";                 
                           }    
                         }                      
                        
                         if (arraySpreadFirstObjects[i] != null){
                           if ( type == "1st"){
                             arraySpreadFirstObjects[i].className = "visible"; 
                             // arraySpreadFirstObjects[i].style.display = "block";          
                             SetTabClass(league, '1st');                     
                           } else {
                             //arraySpreadFirstObjects[i].className= "hidden";                      
                           }    
                         }
                        
                         if (arraySpreadSecondObjects[i] != null){
                            
                           if ( type == "2nd"){
                             arraySpreadSecondObjects[i].className = "visible";    
                             // arraySpreadSecondObjects[i].style.display = "block";      
                             SetTabClass(league, '2nd');                     
                           } else {
                              //arraySpreadSecondObjects[i].className = "hidden";                    
                           }    
                         }
                         
                         if (arrayBookObjects[i] != null ) {
                         
                           if ( _hasVegas){
                             arrayBookObjects[i].className = "visible";  
                           } else{
                              arrayBookObjects[i].className = "hidden";
                              }
                         }                     
                       
                         if (arrayBookNoVegasObjects[i] != null ) {
                         
                           if (! _hasVegas){
                             arrayBookNoVegasObjects[i].className = "visible";  
                           }else{
                              arrayBookNoVegasObjects[i].className = "hidden"; 
                              }
                         }                     
                      }
                       ////writeHistory('10' + new Date());
                
                }else{
                       
                    
                  
//                        clearOddsDivs( i);
//                        //load up default sports
//                        if (eventListArray[i].indexOf(6 + "_") == -1 && eventListArray[i].indexOf(5 + "_") == -1) {                         
//                                arraySpreadObjects[i].style.display = "block"; 
//                                oddTypeTab = spreadTabType;                       
//                        }else{
//                                arrayMLObjects[i].style.display = "block"; 
//                                oddTypeTab = mlTabType;
//                        }                      
//                        
//                        oddTypeTab.style.className = "active"; 
//                        SetTabClass(league, leagueActiveTab.value);                         
                        
                }
                
                  
             
             }
             ////writeHistory('post10' + new Date());
         
        // //writeHistory('8' + new Date());
      //writeHistory("preGetOddsByType");
           
}


function clearOddsDivs( t ){
 //writeHistory("S-clearOddsDivs");
    
    divGame = arraySpreadObjects[t];
     if (divGame != null){
         divGame.className = "hidden";  
         //divGame.style.display = "none";                     
     }
     
     divGame = arrayMLObjects[t];
     if (divGame != null){
         divGame.className = "hidden";
         //divGame.style.display = "none"; 
     }
     
     divGame = arraySpreadFirstObjects[t];
     if (divGame != null){
         divGame.className = "hidden";
         //divGame.style.display = "none"; 
     }
     divGame = arraySpreadSecondObjects[t];
     if (divGame != null){
         divGame.className = "hidden";
         //divGame.style.display = "none"; 
     }
      //writeHistory("clearOddsDivs"); 
}





function SetTabClass( league, type ) 
{
 //alert("setTabClass");
 //writeHistory("S-SetTabClass");
  //writeHistory("league" + league);   
    //writeHistory("type" + type);   
    
        FirstTab = document.getElementById("1st_" + league);
       SecondTab = document.getElementById("2nd_" + league);
       spreadTab = document.getElementById("spread_" + league);
       mlTab = document.getElementById("ml_" + league);
   
    if (league != null)
    {
   
        if (type != null)
        {
                          
                if (SecondTab != null) {
                    SecondTab.className="";
                     //alert("2");
                    //writeHistory("SecondTab=null");
                }
                
                if (FirstTab != null) {
                    FirstTab.className="";
                    // alert("1");
                    //writeHistory("FirstTab=null");
                }
                
                if (spreadTab != null) {
                    spreadTab.className="";
                    // alert("sp");
                    //writeHistory("SpreadTab=null");
                } 
                
                if (mlTab != null) {
                    mlTab.className="";
                     //alert("ml");
                    //writeHistory("mlTab=null");
                }
            
            
                if(type == 'spread')
                {
                    myTab = spreadTab;  
                     if (myTab != null) {      
                         myTab.className = "active"; 
                          //alert("sp-set");
                         //writeHistory("SpreadTab=active");   
                     }                          
                }else if(type == 'ml'){
              
                    myTab = mlTab;  
                   
                     if (myTab != null) {   
                        myTab.className = "active";  
                        // alert("ml-set");
                         //writeHistory("mlTab=active");   
                     }
                }else if(type == '1st'){
                    myTab = FirstTab;  
                     if (myTab != null) {      
                            myTab.className = "active";
                          //   alert("1-set");
                             //writeHistory("FirstTab=active");   
                     } 
                }else if(type == '2nd'){
                    myTab = SecondTab;    
                     if (myTab != null) {    
                            myTab.className = "active"; 
                            // alert("2-set");
                             //writeHistory("SecondTab=active");   
                     }
                }
                 
        }
    }
    //writeHistory("SetTabClass");
}

function closeGame(id) {

    var leagueDDL = document.getElementById('LeagueDDL')
    var LeagueID = id.substring(0,id.indexOf('_'));
    var list2 = document.getElementById('game_selector_'+LeagueID+'_right');
    
    
    if (leagueDDL.options[leagueDDL.selectedIndex] != LeagueID){
       for (i=0; i<leagueDDL.options.length; i++){
           if (leagueDDL.options[i].value == LeagueID){
               leagueDDL.selectedIndex = i;
           }
       }        
       LeagueDDLChange();        
    }
    
    for (i=0; i<list2.options.length;i++){
    
        game_div = document.getElementById('Game_'+list2.options[i].value);

        if (id == list2.options[i].value){
            list2.options[i].selected = true;
            ar_remove( 'game_selector_'+LeagueID );   
            break;
        }
    }
    
     var today = new Date();		
    var dateString =  today.getDate() +"."+ (today.getMonth()+1) +"."+ today.getFullYear();
    var SQLdateString =  (today.getMonth()+1) +"-"+ today.getDate() +"-"+ today.getFullYear();
    
    Delete_Cookie( 'game_selector_'+LeagueID+"-"+dateString );
    Set_Cookie( 'game_selector_'+LeagueID+"-"+dateString, getSelectedString('game_selector_'+LeagueID), 3, '/', '', '' );
    
     UpdateStickyOddTypes();
    AjaxUpdates.UpdateCustomOddsboards(GetCookieBooks(), GetCookieGames(), 'true', sportStickyTypes, UpdateOddsContainer_callback);	
    
     
}

/* Works like document.getElementById but only searches from a given parent node.
 * Uses DFS Search 
 * Mark Kilfoil 2007
 */
function GetSubElementById(parentElement,subElementId){

    for(var i=0; i<parentElement.childNodes.length; i++){
        var childNode = parentElement.childNodes[i];
        if (childNode.id == subElementId){
            return parentElement.childNodes[i];
        }      
        var recursiveNode = GetSubElementById(childNode,subElementId);   
        if ( recursiveNode != null) return recursiveNode;
    }
    
    return null;
} 


function writeHistory(message){ 
     historyDiv = document.getElementById('History1'); 
     historyDiv.appendChild(document.createTextNode(message)); 
     historyDiv.appendChild(document.createElement('BR'));  
     historyDiv.scrollTop += 50; 
    }
    
    
    //load the page the first time
//window.setTimeout("InitializePage()", 10000 );    
//window.setTimeout("InitializeTimer()", 3000 ); 

 // window.setTimeout("InitializePage()", 10000);  
       
      function setPreTabs(){
           for (var yy=0; yy<12; yy++){       
                 if(yy == 5){                   
                    var ml = document.getElementById("ml_5");                  
                    if (ml != null){               
                        SetTabClass(5, 'ml');
                    }
                 }else if(yy == 6){                   
                    var ml = document.getElementById("ml_6");                    
                    if (ml != null){
                        SetTabClass(6, 'ml');
                    }
                 }else{
                        var spread = document.getElementById("spread_" + yy);
                        if (spread != null){
                             SetTabClass(yy, 'spread');
                        }
                    
                 }
           }
           
       }
  
       
         
            
              









	
