var arrControls = new Array();
var timer1 = 0;
var timer2 = 0;
function DisableAll()
{
   document.getElementById("btnOK").disabled = false;
}

function EnableAll()
{
    arrControls.length = 0;
}

function IsDivOpen()
{
	try {

        if (document.getElementById("divMessageBox").style.visibility == "visible")
        {
            return true;
        }

        if (document.getElementById("divUpdateOfferBid").style.visibility == "visible")
        {
            return true;
        }
        
        if (document.getElementById("divReinstate").style.visibility == "visible")
        {
            return true;
        }
        
        if (document.getElementById("divMaximumBet").style.visibility == "visible")
        {
            return true;
        }
    }
    catch (ex)
    {
    }
    return false;
}

function IsDivOpen_ub()
{
    if (parent._global_frameset_main.document.getElementById("divMessageBox").style.visibility == "visible")
    {
        return true;
    }
    if (parent._global_frameset_main.document.getElementById("divUpdateOfferBid").style.visibility == "visible")
    {
        return true;
    }
    if (parent._global_frameset_main.document.getElementById("divReinstate").style.visibility == "visible")
    {
        return true;
    }
    if (parent._global_frameset_main.document.getElementById("divMaximumBet").style.visibility == "visible")
    {
        return true;
    }
    return false;
}
function NewOfferBid(type, bet_id, event_id, event_part_id, place, odds, amount, stop, sender, participant, delaysec) 
{       

}
function ResetConfirm()
{
    divMessageBoxReset.style.visibility = "visible";
}
function ResetConfirmYes()
{
	window.location.href = window.location.href + "&reset=Y"
	CloseMessage('divMessageBoxReset');
}
function ReinstateConfirm()
{
    DisableAll();
    //If any div/box is already open, then do not carry on
    if (IsDivOpen())
    {
        return;
    }       
    divReinstate.style.top = parent._global_frameset_main.body_trading.scrollTop + 35;
    divReinstate.style.visibility = "visible";
    document.getElementById("btnReinstateYes").focus(); 
}
function ReinstateYes()
{   
    //The Yes and No was changed, so yes IS withdraw and NO is reinstate    
    WithdrawAll(event_id);
    divReinstate.style.visibility = "hidden";       
    EnableAll();    
    bNew = true;
}
function ReinstateNo()
{   
    Reinstate(event_id);
    divReinstate.style.visibility = "hidden";
    EnableAll();    
    bNew = true;
}
function UpdateBet(action, sender, sender2, bet_id, event_id, bettype, type, part_id, place, in_running, delaysec, odds, contract_amount, stop_match_increase, participant, stake, counter_id) //CheckValues()
{
	var maindoc = parent._global_frameset_main.document;
    //If any div/box is already open, then do not carry on
    if (IsDivOpen_ub())
    {
        return;
    }       
    maindoc.getElementById("ub_contract_amount").disabled = true;
    maindoc.getElementById("ub_odds").disabled = true;
    var ub__type = maindoc.getElementById("ub_type");   
    var ub__odds = maindoc.getElementById("ub_odds");  
    var ub__contract_amount = maindoc.getElementById("ub_contract_amount");                     
    var ub__contract_stake =  maindoc.getElementById("ub_contract_stake");
    var ub__participant = maindoc.getElementById("ub_participant");
    if (action != "withdrawbet")
    {           
        maindoc.getElementById("UpdateWithdrawHeading").innerHTML = "<STRONG><FONT color=\"#ffffff\" size=\"3\">Confirm Update of Bet</STRONG></FONT>";
        maindoc.getElementById("divUpdateOfferBid").style.top = maindoc.getElementById("body_trading").scrollTop + 35;
        maindoc.getElementById("divUpdateOfferBid").style.visibility = "visible";
		
		// ORIGINAL
		maindoc.getElementById("btn_ub_Yes").onclick = ub_Yes(action, sender, sender2, bet_id, event_id, bettype, type, part_id, place, in_running, delaysec, odds, contract_amount, stop_match_increase, stake, counter_id);
		//NEW HK 

    }   
    if (type == "O")
    {
        ub__type.value = "Lay";
    }
    else 
    {
        ub__type.value = "Back";
    }
    ub__odds.value = odds;
    ub__contract_amount.value = contract_amount;
    ub__contract_stake.value = stake;
    ub__participant.value = participant;    
    parent.last_sender = sender; 
    if (action == "withdrawbet")
    {   
        //No Comfirm Bet
        ub_Yes(action, sender, sender2, bet_id, event_id, bettype, type, part_id, place, in_running, delaysec, odds, contract_amount, stop_match_increase, stake, counter_id);
        return;
    }
}
function ub_Yes(action, sender, sender2, bet_id, event_id, bettype, type, part_id, place, in_running, delaysec, odds, profitloss, stop_match_increase, stake, counter_id) //Submit()
{
    var data = "";
    var url = "";
    var maximum_bet = parent._global_frameset_main.maximum_bet;  
	var target = parent._global_frameset_main.document;
	var timer;
	var sleep = 0;
    timer2 = 1;
    parent._global_frameset_bottom.document.getElementById(sender).disabled = true;
    parent._global_frameset_bottom.document.getElementById(sender2).disabled = true;
    data += "action="+action;
    data += "&bettype=S";
    data += "&type="+type;
    data += "&bet_id="+bet_id;
    data += "&event_id="+event_id;
    data += "&event_part_id="+part_id;
    data += "&place="+place;
    data += "&odds="+odds;
    data += "&amount="+profitloss;
    data += "&stop="+stop_match_increase;
    url = "../process.aspx"; //+ "?" + data;
    target.getElementById("divUpdateOfferBid").style.visibility = "hidden";
    if (delaysec > 0 && action != "withdrawbet")
    {
        sleep = 1000;
    }   
    else
    {
		sleep = 0;
		delaysec = 0;
    }
	var moneyon = parent._global_frameset_main.moneyon;
	if (action == "updatebet")
	{
		if ((Number(stake) > Number(maximum_bet)) || (Number(profitloss) > Number(maximum_bet))) // ERROR ? 
		{
			if  (moneyon == "Y")
			{
				target.getElementById("divMaximumBet").style.visibility = "visible";
				target.getElementById("btnConfirmBet").onclick = "ub_CountDown('"+sender+"', '"+sender2+"', '"+counter_id+"', '"+in_running+"',"+delaysec+",'"+url+"','"+data+"');CloseMessage('divMaximumBet');parent.Refresh_Bottom();";
				target.getElementById("btnConfirmBet").outerHTML = target.getElementById("btnConfirmBet").outerHTML;
				target.getElementById("MaximumBetMessage").value = "Your maximum safe bet (Profit/Loss, Stake) has been exceeded, do you wish to continue?\n\nProfit/Loss: " + stake + "\nStake: " + profitloss + "\nMaximum : " + maximum_bet;
				target.getElementById("divMaximumBet").style.top = parent._global_frameset_main.body_trading.scrollTop + 35;
				target.getElementById("btnDiscardBet").focus();
			}
			else
			{
				target.getElementById("divMaximumBet").style.visibility = "visible";
				target.getElementById("btnConfirmBet").onclick = "ub_CountDown('"+sender+"', '"+sender2+"', '"+counter_id+"', '"+in_running+"',"+delaysec+",'"+url+"','"+data+"');CloseMessage('divMaximumBet');parent.Refresh_Bottom();";
				target.getElementById("btnConfirmBet").outerHTML = target.getElementById("btnConfirmBet").outerHTML;
				target.getElementById("MaximumBetMessage").value = "Your maximum safe bet (Profit/Loss, Stake) has been exceeded, do you wish to continue?\n\nProfit/Loss: " + stake + "\nStake: " + profitloss + "\nMaximum : " + maximum_bet;
				target.getElementById("divMaximumBet").style.top = parent._global_frameset_main.body_trading.scrollTop + 35;
				target.getElementById("btnDiscardBet").focus();
			}
		}
		else
		{
		    setTimeout("ub_CountDown('"+sender+"', '"+sender2+"', '"+counter_id+"', '"+in_running+"',"+delaysec+",'"+url+"','"+data+"')", sleep);
		}
	}
	else
	{
	    setTimeout("ub_CountDown('"+sender+"', '"+sender2+"', '"+counter_id+"', '"+in_running+"',"+delaysec+",'"+url+"','"+data+"')", sleep);
	}    
}
function ub_CountDown(sender, sender2, counter_id, in_running, delaysec, url, data)//, part_id, type, bettype)
{
    if ((timer2 <= delaysec) && ((in_running == "Y") || delaysec > 0))
    {
		parent._global_frameset_bottom.document.getElementById(counter_id).innerHTML = (delaysec - timer2) + " seconds...";
        timer2 ++;      
        setTimeout("ub_CountDown('"+sender+"', '"+sender2+"', '"+counter_id+"', '"+in_running+"', "+delaysec+",'"+url+"','"+data+"')", 1000);    
    }   
    else 
    {   
        parent._global_frameset_main.makeRequest(url, data);  //Use AJAX to get data;
        parent._global_frameset_bottom.document.getElementById(counter_id).innerHTML = delaysec + " second delay";
        parent._global_frameset_bottom.document.getElementById(sender).disabled = false;
        parent._global_frameset_bottom.document.getElementById(sender2).disabled = false;
	timer2 =0;
    }
}
function ub_No()
{
    document.getElementById("divUpdateOfferBid").style.visibility = "hidden";
}

function MessageBox(sMessage)
{
    DisableAll();
    document.getElementById("memMessage").value = sMessage;
    document.getElementById("divMessageBox").style.top = parent._global_frameset_main.body_trading.scrollTop + 35;
    document.getElementById("divMessageBox").style.visibility = "visible";
    document.getElementById("btnOK").focus();   
}

function MessageBoxTarget(sMessage, target)
{
    target.getElementById("memMessage").value = sMessage;
    target.getElementById("divMessageBox").style.top = parent._global_frameset_main.body_trading.scrollTop + 35;
    target.getElementById("divMessageBox").style.visibility = "visible";
    target.getElementById("btnOK").focus();   
}

function WithdrawAll(event_id)
{
    var data = "";
	var url = "";
    
    data += "action=withdrawall";
    data += "&bettype=S";
    data += "&type=0";
    data += "&bet_id=0";
    data += "&event_id="+event_id;
    data += "&event_part_id=0";
    data += "&odds=0";
    data += "&amount=0";
    data += "&stop=0";

    if ((parent._global_frameset_main.max_scracthed_bet > 0) && (parent._global_frameset_main.event_status == "A"))
	{			
		data += "&place=A";
	}
	else
	{
		data += "&place="+place;
	}
    url = "../process.aspx"; //+ "?" + data;
	makeRequest(url, data);  //Use AJAX to get data;
	
}   

function Reinstate(event_id)
{
    var data = "";
    var url = "";
    data += "action=reinstate";
    data += "&bettype=S";
    data += "&type=0";
    data += "&bet_id=0";
    data += "&event_id="+event_id;
    data += "&event_part_id=0";
    data += "&place=A";
    data += "&odds=0";
    data += "&amount=0";
    data += "&stop=0";
	url = "../process.aspx"; //+ "?" + data;
    makeRequest(url, data);  //Use AJAX to get data;
}

function CloseMessage(target)
{
    EnableAll();
    document.getElementById(target).style.visibility = "hidden";
}   
function OpenPopup(url, w, h, t, l)
{
    var f = "height="+h+",width="+w+",status=no,scrollbars=yes,toolbar=no,menubar=no,location=no,top="+t+",left="+l;
    window.open(url,"_blank",f);
}       
function cust_assignfocus(sender)
{
    parent.last_sender = sender.id;
}
function cust_setfocus()
{
    if ((typeof parent.last_sender != "undefined") && (document.all.item(parent.last_sender) != null))
    {   
        if (document.all.item(parent.last_sender))
        {
            document.all.item(parent.last_sender).focus();
        }
        if ((document.all.item(parent.last_sender).type != "button") && (document.all.item(parent.last_sender).type != "BUTTON") && (document.all.item(parent.last_sender).type != "Button"))
        {
            document.all.item(parent.last_sender).select();
        }
        return true;
    }
    else
    {
        return false;
    }   
}
function coo_next(odds,odds_type)
{
    var s = "";
    
    switch (odds_type)
    {
		case "F": s = "5000/1"; break;
		case "D": s = "5001"; break;
		default: s = "";
    }
	
    for (i=0;i<=arrCoo.length-1;i++)
    {

        if ((odds == arrCoo[i][1]) || (odds == arrCoo[i][2]))
        {
            if ((i+1) <= arrCoo.length-1)
            {
                if (odds_type == "F")
                {
                    s = arrCoo[i+1][1];
                }
                else
                {
                    s = arrCoo[i+1][2];
                }
                break;
            }
            break;
        }

    } //for

    return s;
}

function coo_prev(odds,odds_type)
{
    var s = "";
    
    if (odds_type == "F")
    {
        s = "SP";
    }
    else
    {
        s = "SP";
    }

    if (typeof odds == "undefined")
    {
        s = "";
    }

    for (i=0;i<=arrCoo.length-1;i++)
    {
       if ((odds == arrCoo[i][1]) || (odds == arrCoo[i][2]))
        {
            if ((i-1) >= 0)
            {
                if (odds_type == "F")
                {
                    s = arrCoo[i-1][1];
                }
                else
                {
                    s = arrCoo[i-1][2];
                }
                break;
            }
        }

    } //for

    return s;
}
function button_click(odds, input, output, dir, moneyon, odds_type,type)
{
    if (dir == 1)
    {
        odds.value = coo_next(odds.value,odds_type);
    }
    else
    {
        odds.value = coo_prev(odds.value,odds_type);
    }
    
   if ((input != "none") && (typeof input != "undefined"))
   {
        calc_amount(odds, input, output, moneyon,type);
   }   

    //make sure function is available
   if ((typeof reset_Refresh != "undefined") && (typeof reset_Refresh == "function"))
   {
        reset_Refresh();
   }

    if ((typeof CalculateRows != null) && (typeof CalculateRows != "undefined"))
    {
       CalculateRows();
    }
}
function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
  return newnumber; // Output the result to the form field (change for your purposes)
}

function calc_amount(odds, input, output, moneyon,type)
{
    var BettingTax = 0;
    var newstake = 0;
    if (type == "B" & parent._global_frameset_main.sportTax != 0)
    {
        BettingTax = roundNumber(((input.value * parent._global_frameset_main.sportTax)/100),2);
        newstake = input.value - BettingTax;
    }
    else 
    {
        newstake = input.value;
    }
    var _odds = odds;
    var _input = input;
    var _output = output;
	var odds1 = 1;
    var odds2 = 1;       
    if ((typeof _odds == "undefined") || (_odds == null) || (typeof _input == "undefined") || (_input == null) || (typeof _output == "undefined") || (_output == null) || (typeof moneyon == "undefined") || (moneyon == null))
    {
        return;
    }
	if (_odds.id == 'price_Mult')
	{
		_output.value = roundNumber((newstake * _odds.value) - newstake,2);
	}
	else
	{
		//Perform lookup in chart of odds. Only used in single bets 
		for (i=0;i<=arrCoo.length-1;i++)
		{
			if ((arrCoo[i][1] == _odds.value) || (arrCoo[i][2] == _odds.value))
			{            
				odds1 = arrCoo[i][3];
				odds2 = arrCoo[i][5];
				break;
			}
		}
		//Calculate output only for sinlge bets.
		if ((moneyon == "N") || (moneyon == "undefined"))
		{
			_output.value = roundNumber( newstake /((odds1 / odds2)-1),2); // _input.value
		}
		else
		{
			///calculate the win_amount
			_output.value = roundNumber(( newstake * odds1 / odds2) - newstake,2); // _input.value
		}
	}
    if ((typeof CalculateRows != null) && (typeof CalculateRows != "undefined"))
    {
        CalculateRows();
    }
}

function calc_amount_return(odds, input, moneyon)
{
    // input = Stake Amount 
    var odds1 = 1;
    var odds2 = 1;           
 
    for (i=0;i<=arrCoo.length-1;i++)
    {
        if ((arrCoo[i][1] == odds) || (arrCoo[i][2] == odds))
        {
            odds1 = arrCoo[i][3];
            odds2 = arrCoo[i][5];
            break;
        }
    }
    //the value returned is for the second(win column) column
    if ((moneyon == "N") || (moneyon == "undefined"))
    {     
        return Math.round( input /((odds1 / odds2)-1));      
    }
    else
    {    
        return Math.round( ((input * odds1/odds2)-input) * 100)/100;      
    }
    if ((typeof CalculateRows != null) && (typeof CalculateRows != "undefined"))
    {
        CalculateRows();
    }
}
function amt_next(input)
{
    var n = parseFloat(input);
    var amt1 = parent._global_frameset_main.strike_amt1;
    var amt2 = parent._global_frameset_main.strike_amt2;
    var amt3 = parent._global_frameset_main.strike_amt3;
    var amt4 = parent._global_frameset_main.strike_amt4;
    var amt5 = parent._global_frameset_main.strike_amt5;
    if (n < amt1)
        return amt1;
        
    if ((n >= amt1) && (n < amt2))
        return amt2;
    
    if ((n >= amt2) && (n < amt3))
        return amt3;
        
    if ((n >= amt3) && (n < amt4))
        return amt4;
        
    if ((n >= amt4) && (n < amt5))
        return amt5;
    return n;       
}
function amt_prev(input)
{
    var n = parseFloat(input);
    var amt1 = parent._global_frameset_main.strike_amt1;
    var amt2 = parent._global_frameset_main.strike_amt2;
    var amt3 = parent._global_frameset_main.strike_amt3;
    var amt4 = parent._global_frameset_main.strike_amt4;
    var amt5 = parent._global_frameset_main.strike_amt5;

    if (n > amt5)
        return amt5;    
        
    if ((n > amt4) && (n <= amt5))
        return amt4;
        
    if ((n > amt3) && (n <= amt4))
        return amt3;
    
    if ((n > amt2) && (n <= amt3))
        return amt2;
        
    if ((n > amt1) && (n <= amt2))
        return amt1;        
    
        
    return n;
}

function button_amt_click(odds, input, output, dir,obj_tax,type)
{
	var moneyon = parent._global_frameset_main.moneyon;

    if ((input == "none") || (typeof input == "undefined"))
    {
        return;
    }

    if (dir == 1)
    {
        input.value = amt_next(input.value);
    }
    else
    {
        input.value = amt_prev(input.value);
    }
    
   if ((input != "none") && (typeof input != "undefined"))
   {
        calc_amount(odds, input, output, moneyon,type);
   }   
    //make sure function is available
   if ((typeof reset_Refresh != "undefined") && (typeof reset_Refresh == "function"))
   {
        reset_Refresh();
   }
    if ((typeof CalculateRows != null) && (typeof CalculateRows != "undefined"))
    {
       CalculateRows();
    }
     if (type == "B")
     {
         if (parent._global_frameset_main.sportTax != 0)
         {
            var BettingTax = roundNumber(input.value - (input.value/((parent._global_frameset_main.sportTax/100) + 1)),2);
            document.getElementById(obj_tax).innerHTML = "Tax:" + BettingTax;
        }
    }
}
function DisableAll_FooterOnly()
{
    if (parent._global_frameset_main.event_status != "A")
    {
		var inputs = document.getElementsByName("INPUT");
        for (var i = 0;i<inputs.length;i++)
        {
			arrControls[i] = inputs(i).disabled;         
			inputs(i).disabled = true;
        }
    }
}
