﻿var refreshTimerId = 0;
function ProcessRequest(id,methodname,params,loadmsg){
    var surl = '/fruppy/process2.aspx' //Script file change to .php .aspx or as appropriate
    var srelpath = ''
    if (typeof(window['extrelpath'])!="undefined"){surl=extrelpath+surl;srelpath=extrelpath;} //Override for subfolders
    if (!(loadmsg)){
        $(id).innerHTML = "<span class='FruppyLoading'><img src='/fruppy/images/wait30trans.gif' width='30' height='30' /></span>";    
    }else if (loadmsg.substr(0,1)=='*'){
        $(id).innerHTML = "<span class='FruppyLoading'><img src='/fruppy/images/wait16trans.gif' width='16' height='16' /> " + loadmsg.substr(1) + "</span>";    
    }else if (loadmsg){
        $(id).innerHTML = "<span class='FruppyLoading'>" + loadmsg + "</span>";    
    }
    var req = new Ajax.Request(
        surl,
        {
            method: 'post',
            parameters: params,
            requestHeaders: ['CONTAINERID',id,'WPCMETHOD',methodname],
            onFailure: function (r){
                $(id).innerHTML = r.responseText; 
             },
            onSuccess: function (r){
                $(r.getResponseHeader('CONTAINERID')).innerHTML = r.responseText; 
                if (r.getResponseHeader('FRUPPYJSCode').length > 0){
                    eval(r.getResponseHeader('FRUPPYJSCode'));
                }
             }
        }); 
}
function Eval(sCode){eval(sCode);}
function UpdateAllCosts(aBuyOutcomes,aSellOutcomes,iEventID){
    var iQty, iPrice, iMaxQty, sOutcomename, iMarketPrice, iTotal, iCurrentQty, iCurrentTotal, oStatusAlert
    $('AlertEvent_'+iEventID).innerHTML = ''
    iCurrentTotal = CheckNum('EventBalance_' + iEventID,iEventID);
    oStatusAlert = $('StatusAlertEvent_'+iEventID)
    oStatusAlert.innerHTML = ''
    for (var i = 0; i< aBuyOutcomes.length; i++)
    {
        iMarketPrice = CheckNum('BuyOutcomeMarketPrice_' + aBuyOutcomes[i],iEventID);
        iCurrentQty = CheckNum('BuyOutcomeSharesOwned_' + aBuyOutcomes[i],iEventID);
        iMaxQty = CheckNum('BuyOutcomeMax_' + aBuyOutcomes[i],iEventID);
        sOutcomename = $('BuyOutcomeName_' + aBuyOutcomes[i]).value;
        iQty = DefaultNaN(CheckNum('BuyOutcome_' + aBuyOutcomes[i],iEventID,0,iMaxQty),0);
        $('BuyResult_' + aBuyOutcomes[i]).innerHTML = iCurrentQty + iQty;
        $('BuyTotal_' + aBuyOutcomes[i]).innerHTML = iQty * iMarketPrice;
        iCurrentTotal -= (iQty * iMarketPrice)
    }
    for (var i = 0; i< aSellOutcomes.length; i++)
    {
        iMarketPrice = CheckNum('SellOutcomeMarketPrice_' + aSellOutcomes[i],iEventID);
        iCurrentQty = CheckNum('SellOutcomeSharesOwned_' + aSellOutcomes[i],iEventID);
        iMaxQty = CheckNum('SellOutcomeMax_' + aSellOutcomes[i],iEventID);
        sOutcomename = $('SellOutcomeName_' + aSellOutcomes[i]).value;
        iQty = DefaultNaN(CheckNum('SellOutcome_' + aSellOutcomes[i],iEventID,0,iMaxQty),0);
        iPrice = DefaultNaN(CheckNum('SellOutcomePrice_' + aSellOutcomes[i],iEventID,1,99),0);
        $('SellResult_' + aSellOutcomes[i]).innerHTML = iCurrentQty - iQty;
        $('SellTotal_' + aSellOutcomes[i]).innerHTML = iQty * iPrice;
        iCurrentTotal += (iQty * iPrice)
        oStatusAlert.innerHTML += 'La probablidad de vender ' +  sOutcomename + ' a <span class="fruppy">f</span> ' + iPrice + ' es: '
        if ((iPrice/iMarketPrice) < 1)
        {oStatusAlert.innerHTML += 'ALTA. ';}
        else if ((iPrice/iMarketPrice) <= 1.1)
        {oStatusAlert.innerHTML += 'MEDIANA. ';}
        else
        {oStatusAlert.innerHTML += 'BAJA. ';}
        if ((iPrice/iMarketPrice) > 1)
            {oStatusAlert.innerHTML += '<br />Estás un ' +  Math.round((((iPrice/iMarketPrice)-1)*100)) + '% por encima del precio actual del mercado para ' + sOutcomename + '.';}
        else if  ((iPrice/iMarketPrice) == 1)
            {oStatusAlert.innerHTML += '<br />Este ese el precio de mercado actual para ' + sOutcomename + '.';}        
        else if  ((iPrice/iMarketPrice) < 1)
            {oStatusAlert.innerHTML += '<br />Estás un ' +  Math.round(((1-(iPrice/iMarketPrice))*100)) + '% por debajo del precio actual del mercado para ' + sOutcomename + '.';}        
        oStatusAlert.innerHTML += '<br />';
    }
    $('NewEventBalance_'+iEventID).innerHTML = iCurrentTotal;
    for (var i = 0; i< aBuyOutcomes.length; i++)
    {
        $('grandprizevalue_'+aBuyOutcomes[i]).innerHTML = (parseInt($('BuyResult_' + aBuyOutcomes[i]).innerHTML)*100) + iCurrentTotal;
    }
}
function CheckNum(sObjName,iEventID,iLbound,iUbound){
    if ($(sObjName)){
        if (isNaN(parseInt($(sObjName).value)))
        {   if ($(sObjName).value.length > 0){$(sObjName).value='';$('AlertEvent_'+iEventID).innerHTML = 'Sólo Números Enteros. ';}     }
        else if ($(sObjName).value!=parseInt($(sObjName).value))
        {   $(sObjName).value = parseInt($(sObjName).value);$('AlertEvent_'+iEventID).innerHTML = 'Sólo Números Enteros. ';     }
        
        if (parseInt($(sObjName).value) > parseInt(iUbound))
        {   $(sObjName).value = parseInt(iUbound);$('AlertEvent_'+iEventID).innerHTML = 'El Máximo Que Puedes Introducir Es ' + iUbound;    }
        else if (parseInt($(sObjName).value) < parseInt(iLbound))
        {   $(sObjName).value = parseInt(iLbound);$('AlertEvent_'+iEventID).innerHTML = 'El Mínimo Que Puedes Introducir Es ' + iLbound;    }
        return parseInt($(sObjName).value)
    }
    else{   $('AlertEvent_'+iEventID).innerHTML = 'Error Finding ' + sObjName;  }
}
function DefaultNaN(sVal,iDefault)
{
    if (isNaN(sVal)){return iDefault} else {return sVal}
}
