// var wp_site_context = {"card_servlet_url" : "http://jeep01:16400/servlet/Card"};
// var wp_site_context = {"card_servlet_url" : "/js/xstan/Core/testcards2.xml"};
//var wp_site_context = {"card_servlet_url" : "http://localhost:17200/itote-online/betplus.do"};
//var wp_site_context = {"card_servlet_url" : "/betplus.do"};
var counter = 4;

function WagerTicketAdapter() {
	this.wager = null;
};
	
WagerTicketAdapter.prototype.placeBet = function() {
		placeBet(this.wager);
	};
	
WagerTicketAdapter.prototype.update = function(wager) {
		
		// fade out the overlay div, only when the user has clicked something, not during load (this method gets called [counter value] times
		counter--;
		if (counter == 0) 
		{
			new Effect.Fade('wagerpad_overlay', 
				{
					duration: 0.4
				}
			);
			counter = 4;
		}
		
			
		var betSummaryStr = wager.track.trackDescription;
		var wpCurrentTrackRace = wager.track.trackDescription;
		if(wager.raceNumber != "") {
			wpCurrentTrackRace = betSummaryStr + "&nbsp;Race #" + wager.raceNumber;
			betSummaryStr = betSummaryStr + "&nbsp;Race " + wager.raceNumber;
		}

		var selections = wager.selectionsSummary;
		
		if ( wager.betTypeId == "EXW" ) {
			if (selections.indexOf("/") > 0 ) {
				var firstLeg = selections.substring(0, selections.indexOf( "/" ));
				if( firstLeg.indexOf( "," ) != -1 || firstLeg.indexOf( "-" ) != -1 ) {
					selections = selections.concat( " B" );
				} else {
					selections = (selections.substring(0, selections.indexOf("/")-1)).concat(" B ", selections.substring(selections.indexOf("/"), selections.length));
				}
			}	
		} else if( wager.betTypeId == "EXB" || wager.betTypeId == "TRB" || wager.betTypeId == "TOB" || wager.betTypeId == "TRD" ) {
			if (selections.indexOf("/") > 0 ) {
				selections = (selections.substring(0, selections.indexOf("/")-1)).concat(" B ", selections.substring(selections.indexOf("/"), selections.length));
			}
		}
		
	/*	if( selections.length < 28 )
		{
			betSummaryStr2 += selections;
		}
		else
		{
			betSummaryStr2 += "<br/>" + selections;
		}
	
	*/
	
	var wagerSelections = document.getElementById("wagerSelections");
	var stringValue="";
	var nl = "\n";
	wagerSelections.innerHTML = "";
	
		if (wager.legs.length>1)
			{
			
				stringValue += "<table cellspacing='0' cellpadding='0' border='0' align='center' width='100%'>" + nl;
				var banker = false;
			
				for (i = 0; i < wager.legs.length; i++)
				{
					stringValue += "<tr class='divTextContent'>" + nl;
					
					stringValue += "<td width='30%' valign='top'>" + nl;
					stringValue += "Race " + wager.legs[i].race.id + nl;
					stringValue += "</td>" + nl;
					
					stringValue += "<td width='70%' valign='top'>" + nl;
					
					//stringValue += wager.legs[i].selectionSummary + nl;
                    
                    var selection_length = wager.legs[i].selections.length;
                    for( j = 0; j < selection_length; j++ )
                    {
                        var entry = wager.legs[i].selections[j].entry;
                        stringValue += entry.bettingInterestNumber;
					
    					if (wager.betTypeId == "EXW")
	    				{
		    				 if (wager.legs[i].selectionSummary.indexOf( "," ) == -1 && 
			    			 	 wager.legs[i].selectionSummary.indexOf( "-" ) == -1 &&
				    		 	 wager.legs[i].selectionSummary != '')	
							 	if (!banker)
					 			{
						 			stringValue += " B";
						 			banker = true;
						 		}
						}
					
					    if( wager.betTypeId == "EXB" || 
						    wager.betTypeId == "EBR" ||
						    wager.betTypeId == "TRB" || 
						    wager.betTypeId == "TRD" || 
						    wager.betTypeId == "TOB")
						{
							var secDelimitator = wager.legs[i].selectionSummary.substring(wager.legs[i].selectionSummary.indexOf( "," )+1,100);
							if ((wager.legs[i].selectionSummary.indexOf( "," ) == -1 || 
								wager.legs[i].selectionSummary.indexOf( "," ) != -1) &&
								secDelimitator.indexOf( "," ) == -1 &&  
						 	 	wager.legs[i].selectionSummary.indexOf( "-" ) == -1 &&
						 		wager.legs[i].selectionSummary != '')	
								 	if (!banker)
								 		{
								 			stringValue += " B";
								 			banker = true;
								 		}
			
						}
                        stringValue += " - " + entry.horseName + "<br/>";
                    }
					
					stringValue += "</td>" + nl;
					
					stringValue += "</tr>" + nl;  
				}
				
				stringValue += "</table>" + nl;
			}
		
		
		if (wager.legs.length == 1)
			{
				stringValue += "<table cellspacing='0' cellpadding='0' border='0' align='center' width='100%'>" + nl;
				stringValue += "<tr class='divTextContent'>" + nl;
					
				stringValue += "<td width='30%' valign='top'>" + nl;
				stringValue += "Race " + wager.legs[0].race.id + nl;
				stringValue += "</td>" + nl;
										
				stringValue += "<td width='70%' valign='top'>" + nl;
//				stringValue += selections;
                var selection_length = wager.legs[0].selections.length;
                for( j = 0; j < selection_length; j++ )
                {
                    var entry = wager.legs[0].selections[j].entry;
                    stringValue += entry.bettingInterestNumber;
                    stringValue += " - " + entry.horseName + "<br/>";
                }
				stringValue += "</td>" + nl;
				
				stringValue += "</tr>" + nl;  
				stringValue += "</table>" + nl;
			}
	
		//alert(stringValue);
		wagerSelections.innerHTML = stringValue;
	
		document.getElementById("wt_track").innerHTML = betSummaryStr;
		document.getElementById("wpCurrentTrackRace").innerHTML = wpCurrentTrackRace;
		
        var wager_bet_type = WP_Utils.emptyStrIfNull(wager.betType);
        if (window.wagerPad.wagerManager.wager.track.track_code == "PK6") wager_bet_type = "Pick 6";
        document.getElementById("wt_betsummary1").innerHTML = wager_bet_type + ' ' + wager.getFormattedAmount();
		
		document.getElementById("wt_betsummary2").innerHTML = 'Selections: ' + selections;		
		document.getElementById("wt_betsummary3").innerHTML = wager.getFormattedBetTotal();
		
		var thisObj = this;
		if(wager.validWager) {
		
			// addapted by cristian. the button will be disable until the confirmation
			// of wager ticket arrive and it is closed
			if (!check_not_to_show_another_modal) 
				{
				 document.getElementById("wt_betnow_button").className = "";
				 document.getElementById("wt_betnow_button").className = "bet_now";
				 document.getElementById("wt_betnow_button").disabled = false;
				 document.getElementById("yourTicket").className = "ticketEnabled";
				}
			
			document.getElementById("wt_betnow_button").onclick = function() {
			//adapted by cristian
			if (wagerPad != null)
			{
				if (wagerPad.pageController.otherButtonController.formEl.style.display == 'block') {
		    		if (!wagerPad.pageController.otherButtonController.otherAmountEnteredHandler()) {
						return false;
					}
				}
			}
					
			thisObj.placeBet(wager);
			};
			
			this.wager = wager;
		} else {
			document.getElementById("wt_betnow_button").className = "disable";
			document.getElementById("wt_betnow_button").disabled = true;
			document.getElementById("wt_betnow_button").className = "disable";
			document.getElementById("yourTicket").className = "ticketDisabled";
		}
	};

//WagerTicketAdapter.prototype.newWager = function(wager) {
		// reset all fields
//		this.update(wager);
//		tillRoll_updateWager(wager);
//	};

//function TodaysTracks(wagerManager) {
//	this.wagerManager = wagerManager;
//
//	this.redrawTable = function(tracks) {
//		var trackSelection = new SelectionModel		
//	}
//	
//}

var wagerPad;

function wagerpadinitUI() {
	// initialise
	var wagerProvider = new XstanWagerProvider(cardManager);
    wagerProvider.setForexManager(forexManager);
	this.wagerPad = new WagerPad(new BPOnlineWagerPadUI(), wagerProvider);
	wagerPad = this.wagerPad;
	this.wagerPad.init();

	// hook up wager ticket
	this.wagerTicket = new WagerTicketAdapter();
//	this.wagerPad.registerPlaceBetListener(function(wager) {this.wagerPad.suspend(); this.wagerTicket.placeBet(wager);});
	this.wagerPad.registerCurrentWagerChangeListener(this.wagerTicket.update);
	this.wagerPad.registerBeginWageringListener(this.wagerTicket.update);
	
	var clearButton = document.getElementById("wt_clear_button");
	clearButton.onclick = function() {wagerPad.clearSelections();};

	var startOverButton = document.getElementById("wt_startover_button");
	startOverButton.onclick = function() {wagerPad.clearSelections(); wagerPad.beginWagering(wp_preselection);};

	// start wager pad with default selection
	if(wp_preselection) {
		//cardManager.emptyCards(wp_preselection.track.code);
		var card = cardManager.getCard(wp_preselection.track.code);
		var raceForCard = WP_Utils.arrayFilter(card.races, function(e) {
			return ( e.tote_race_number == wp_preselection.raceNumber);
			});
		if ( raceForCard.length == 0 ) {
			wp_preselection.raceNumber = 1;
		}
		wagerPad.beginWagering(wp_preselection);
	} 

};

//registerFuntionToCallOnLoad(wagerpadinitUI);

Common.prototype.createAlert = function( message ) {
	document.getElementById('messagePopupGlobal').innerHTML = message;
	popupGlobalMessage.call();
}

var popupGlobal_Obj;
var popupGlobal_Obj_status = false;

function popupGlobalMessage() {
	if (!popupGlobal_Obj_status)
		{
			popupGlobal_Obj = new DHTMLSuite.modalMessage();	// We only create one object of this class
			popupGlobal_Obj.setShadowOffset(5);	// Large shadow
			popupGlobal_Obj.width = 321;
			popupGlobal_Obj.height = 150;
			popupGlobal_Obj.domRef = document.getElementById('popupGlobal');
			popupGlobal_Obj.isMovable = true;
			popupGlobal_Obj.display();
			popupGlobal_Obj_status = true;
		}
}

function closeGlobalMessage() {

	popupGlobal_Obj.close();
	popupGlobal_Obj_status = false;
	
}

var confirmGlobal_Obj;
var confirmObj;

Common.prototype.createConfirm = function(message) {
	confirmObj = this;
	document.getElementById('messageConfirmGlobal').innerHTML = message;
	confirmGlobalMessage.call();
};


function confirmGlobalMessage() {

	confirmGlobal_Obj = new DHTMLSuite.modalMessage();	// We only create one object of this class
	confirmGlobal_Obj.setShadowOffset(5);	// Large shadow
	confirmGlobal_Obj.width = 321;
	confirmGlobal_Obj.height = 150;
	//confirmGlobal_Obj.domRef = document.getElementById('confirmGlobal');
	confirmGlobal_Obj.setHtmlContent(document.getElementById('confirmGlobal').innerHTML);
	confirmGlobal_Obj.isMovable = true;
	confirmGlobal_Obj.display();
}

function confirmGlobalOk() {
	confirmGlobal_Obj.close();
	confirmObj.confirmChoice(true);
}

function confirmGlobalCancel() {
	confirmGlobal_Obj.close();
	confirmObj.confirmChoice(false);
}

