﻿var myRequest = new ajaxObject("SalesRingAjax.aspx");
var currentName = null;
var currentImg = null;

function checkHorseName(oText) {
    var horseNumbers = getHorseNumbers();
    var totalHorses = horseNumbers.bonus + horseNumbers.cash;
    if (totalHorses == 1) {
        var oTextValue = oText.value;
        if (oTextValue.length >= 3) {
            // Create an ajax processor, supplying the page to call
            window.acProc = new AjaxProc("SalesRingAjax.aspx", "checkHorseName");

            acProc.sourceInput = oText;

            // Set up any parameters
            acProc.addParameter("value", oTextValue);

            // Specify function to run when the request returns
            acProc.done = function(context) {
                displayNameCheckStatus(this.responseXml, true);
            }

            // execute the processor
            acProc.execute();
        }
        else {
            document.getElementById('imgError').style.display = 'none';
            document.getElementById('imgSuccess').style.display = 'none';
        }
    }
}

function getArchivedName() {
    myRequest.update('command=getArchivedName');
    myRequest.callback = function(responseText, responseStatus, responseXML) {
        var horseNumbers = getHorseNumbers();
        var isSingleHorse = (horseNumbers.bonus + horseNumbers.cash) == 1;
        var availableName = responseXML.getElementsByTagName('AvailableHorseName')[0].firstChild.nodeValue;
        availableName = (isSingleHorse) ? availableName : availableName.substring(0, 11);
        document.forms[0].HorseName.value = availableName;
        displayNameCheckStatus(responseXML, isSingleHorse);
    }
}

function displayNameCheckStatus(responseXML, isSingleHorse) {
    var valid = (responseXML.getElementsByTagName('HorseNameTaken')[0].firstChild.nodeValue == 'true');
    document.getElementById('imgError').style.display = (!valid && isSingleHorse) ? '' : 'none';
    document.getElementById('imgSuccess').style.display = (valid && isSingleHorse) ? '' : 'none';
    currentImg = (valid && isSingleHorse) ? 'imgSuccess' : 'imgError';
}

function updateFreeHorseNumberAndPurchaseTotal() {
    var numbers = getHorseNumbers();
    var cashNoHorses = numbers.cash;
    var bonusNoHorses = numbers.bonus;

    var totalHorses = cashNoHorses + bonusNoHorses;
    if (totalHorses > 1) {
        document.getElementById('noOfCharsDiv').innerHTML = '11';
        document.forms[0].HorseName.maxLength = 11;
        document.getElementById('imgError').style.display = 'none';
        document.getElementById('imgSuccess').style.display = 'none';
        currentName = document.forms[0].HorseName.value;
        document.forms[0].HorseName.value = currentName.substring(0, 11);
    }
    else {
        document.getElementById('noOfCharsDiv').innerHTML = '17';
        document.forms[0].HorseName.maxLength = 17;
        if (currentName) {
            document.forms[0].HorseName.value = currentName;
            if (currentImg) document.getElementById(currentImg).style.display = '';
        }
    }
    
    //Updating Number Of Free Horses.
    var totalFreeHorses = parseInt((cashNoHorses / 5)) + parseInt((cashNoHorses / 10));
    document.getElementById('totalFreeHorseDiv').innerHTML = totalFreeHorses;
    document.getElementById('numHorses').innerHTML = (parseInt(cashNoHorses) + parseInt(bonusNoHorses) + parseInt(totalFreeHorses)).toString() + '&nbsp;';

    //Updating Purchase Total.
    var totalCash = (cashNoHorses * horsePrice);
    var totalBonus = (bonusNoHorses * horsePrice);
    var decimalsCash = new String(Math.round(totalCash * 100) + 100);
    var decimalsBonus = new String(Math.round(totalBonus * 100) + 100);
    decimalsCash = "." + decimalsCash.substr(decimalsCash.length - 2, 2);
    decimalsBonus = "." + decimalsBonus.substr(decimalsBonus.length - 2, 2);
    document.getElementById('horseCashPrice').innerHTML = CurrencySymbol + Math.floor(totalCash) + decimalsCash + '&nbsp;';
    document.getElementById('horseBonusPrice').innerHTML = CurrencySymbol + Math.floor(totalBonus) + decimalsBonus + '&nbsp;';

    updateSuppFeeTotal(document.forms[0].SupplementaryFee);
}

function updateSuppFeeTotal(oCheck) {
    if (oCheck.checked) {
        var numbers = getHorseNumbers();
        var cashNoHorses = numbers.cash;
        var bonusNoHorses = numbers.bonus;
        var totalFreeHorses = parseInt((cashNoHorses / 5)) + parseInt((cashNoHorses / 10));
        var totalSuppFee = (parseInt(cashNoHorses) + parseInt(bonusNoHorses) + totalFreeHorses) * suppFeePrice;
        var decimals = new String(Math.round(totalSuppFee * 100) + 100);
        decimals = "." + decimals.substr(decimals.length - 2, 2);
        document.getElementById('suppFeePrice').innerHTML = CurrencySymbol + Math.floor(totalSuppFee) + decimals + '&nbsp;';
    }
    else {
        document.getElementById('suppFeePrice').innerHTML = CurrencySymbol + '0.00' + '&nbsp;';
    }

}

function getHorseNumbers() {
    var cashDdl = document.forms[0].NoOfHorsesCash;
    var bonusDdl = document.forms[0].NoOfHorsesBC;
    var cashNoHorses = cashDdl.options[cashDdl.selectedIndex].value;
    var bonusNoHorses = bonusDdl.options[bonusDdl.selectedIndex].value;
    return { cash: parseInt(cashNoHorses), bonus: parseInt(bonusNoHorses) }
}


