﻿//  Extends String            
// Give string object the trim method.
String.prototype.trim = function() {
    return (this.replace(new RegExp("^([\\s]+)|([\\s]+)$", "gm"), ""));
}

// Give string object the left trim method.
String.prototype.leftTrim = function() {
    return (this.replace(new RegExp("^[\\s]+", "gm"), ""));
}

// Give string object the right trim method.
String.prototype.rightTrim = function() {
    return (this.replace(new RegExp("[\\s]+$", "gm"), ""));
}
var TRACKS_LINK_DISABLED = 'disabled';
var TRACKS_LINK_ENABLE = 'enable';
var $MINUMUM_BET_AMOUNT = 0;
var HTTP_REQUEST = '/racebook/services/engineservice.aspx';
 
function ExpandCollapse($linkcontrol, $controlname, $group, $requestHandler) {

    var $control = document.all ? document.all[$controlname] : document.getElementById($controlname);
    var $controlArrow = document.all ? document.all[$linkcontrol] : document.getElementById($linkcontrol);

    if ($control.style.display == 'none') {
        $controlArrow.className = 'opened';
        $control.style.display = 'block';
        $control.style.visibility = 'visible';
        if ($requestHandler != '')
            HttpRequest(HTTP_REQUEST, 'action=leftmenu&group=' + String($group) + '&access=add');
    }
    else {
        $controlArrow.className = 'closed';
        $control.style.display = 'none';
        $control.style.visibility = 'hidden';
        if ($requestHandler != '')
            HttpRequest(HTTP_REQUEST, 'action=leftmenu&group=' + String($group) + '&access=remove');
    }

    $controlArrow = null;
    $control = null;
}


function GetRaces($obj) {
    HttpRequest(HTTP_REQUEST, 'action=getraces&trackname=' + String($trackname), $obj);
}

function CalcuteTotalRisk($riskid, $bets, $txttotalid, $lbltotalid) {
    var $riskvalue = 0;
    var $txtrisk = null;

    var $txtrisk = document.all ? document.all[$riskid] : document.getElementById($riskid);

    if (($txtrisk != null) && ($txtrisk != undefined))
        $riskvalue = $txtrisk.value;
        
    $riskvalue = parseFloat(($riskvalue == 0 || isNaN($riskvalue)) ? 0 : $riskvalue);    
    $bets = (Number($bets) && Number($bets) != 0 ? Number($bets) : 1);
    
    var $labelTotal = document.all ? document.all[$lbltotalid] : document.getElementById($lbltotalid);
    var $textTotal = document.all ? document.all[$txttotalid] : document.getElementById($txttotalid);

    if (($textTotal != null) && ($textTotal != undefined)) 
        $textTotal.value = String(($riskvalue * $bets).toFixed(2));

    if (($labelTotal != null) && ($labelTotal != undefined)) {        
        if (document.all)
            $labelTotal.innerHTML = String(($riskvalue * $bets).toFixed(2));
        else
            $labelTotal.textContent = String(($riskvalue * $bets).toFixed(2));
    }
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
 * Calculate Risk Totals                                                           * 
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
function CalculateTotals($repeatername, $itemscount, $lbltotalriskid, $lbltotalid) {
    var $total = 0;
    var $totalrisk = 0;

    for (var $itemindex = 1; $itemindex <= $itemscount; $itemindex++) {        
        var $ctrlname = $repeatername + '_ctl' + String(($itemindex < 10 ? '0' : '')) + String($itemindex) + '_';
        var $textboxrisk = document.all ? document.all[$ctrlname + 'txtRisk'] : document.getElementById($ctrlname + 'txtRisk');
        var $txttotal = document.all ? document.all[$ctrlname + 'txtTotal'] : document.getElementById($ctrlname + 'txtTotal');

        if (($textboxrisk != null) && ($textboxrisk != undefined))
            $totalrisk = parseFloat($totalrisk) + parseFloat($textboxrisk.value == '' || isNaN($textboxrisk.value) ? 0 : $textboxrisk.value);

        if (($txttotal != null) && ($txttotal != undefined)) {
            $total = parseFloat($total) + parseFloat($txttotal.value == '' || isNaN($txttotal.value) ? 0 : $txttotal.value);
        }
    }

    var $lbltotalrisk = document.all ? document.all[$lbltotalriskid] : document.getElementById($lbltotalriskid);
    var $lbltotaltotal = document.all ? document.all[$lbltotalid] : document.getElementById($lbltotalid);

    if (($lbltotalrisk != null) && ($lbltotalrisk != undefined)) {
        if (document.all)
            $lbltotalrisk.innerHTML = String($totalrisk.toFixed(2));
        else
            $lbltotalrisk.textContent = String($totalrisk.toFixed(2));
    }

    if (($lbltotaltotal != null) && ($lbltotaltotal != undefined)) {
        if (document.all)
            $lbltotaltotal.innerHTML = String($total.toFixed(2));
        else
            $lbltotaltotal.textContent = String($total.toFixed(2));
    }
}

// To allow only key numbers
function isNumberKey($evt) {
    var $result = true;
    var $charCode = ($evt.which) ? $evt.which : $event.keyCode
    if ($charCode > 31 && ($charCode < 48 || $charCode > 57) && ($charCode != 46))
        $result = false;

    return $result;
}

function fireClickEventByName($controlName) {
    var $control = document.all ? document.all[$controlName] : document.getElementById($controlName);
    fireClickEvent($control);
}

function fireClickEvent($control) {
    if (document.all) {
        $control.click();
    }
    else {
        var $clickEvent = window.document.createEvent("MouseEvent");
        $clickEvent.initEvent("click", true, true);
        $control.dispatchEvent($clickEvent);
    }
}

function EnterPressed($buttonSubmit, $event) {
    var $res = true;
    if ($buttonSubmit != '' && $buttonSubmit != null) {
        var $key;
        if (!$event) { $event = window.event; }
        $key = $event.keyCode ? $event.keyCode : $event.which;

        if ($key == 13) {
            var $controlSubmit = document.all ? document.all[$buttonSubmit] : document.getElementById($buttonSubmit);

            fireClickEvent($controlSubmit);
            return false;
        }
    }
    return $res;
}

function OnlyNumbers($event, $controlName, $confirm) {
    var $keycode;
    var $charcode;
    var $iszero = ($event.charCode != undefined && $event.charCode != null);
    var $control = document.all ? document.all[$controlName] : document.getElementById($controlName);
    var $value = String($control.value).trim();
    var $index = $value.indexOf('.');

    if (!$event) { $event = window.event; }
    $charcode = $event.which != undefined ? $event.which : $event.keyCode;
    $keycode = $event.keyCode ? $event.keyCode : $event.which;

    if (($keycode >= 35 && $keycode <= 40) || ($keycode >= 48 && $keycode <= 57) || ($keycode == 46) || ($keycode == 8) || ($keycode == 9) || ($keycode == 13)) 
    {
        var $res = null;

        if ($keycode >= 35 && $keycode <= 40 && $keycode == $charcode)
            $res = false;
        else if (($keycode == 13) && ($value.length == 0 || isNaN($value) || Number($value) == 0))
            $res = false;
        else if (($keycode == 46 && $keycode == $charcode) && ($index != -1 || $value.length == 0))
            $res = false;
        else if (($keycode >= 48 && $keycode <= 57) && ($index == -1 && $value.length > 4))
            $res = false;

        if ($res != null) {
            if ($iszero == false) $event.keyCode = 0;
            return false;
        }
    }
    else {
        if ($iszero == false) $event.keyCode = 0;
        return false;
    }

    return EnterPressed($confirm, $event);
}

function CheckOnes(spanChk) {

    var oItem = spanChk.children;
 
    var theBox = (spanChk.type == "radio") ? spanChk : spanChk.children.item[0];

    xState = theBox.unchecked;
    elm = theBox.form.elements;

    for (i = 0; i < elm.length; i++)
        if (elm[i].type == "radio" && elm[i].id != theBox.id) {
        elm[i].checked = xState;
    }
}