﻿//Checks all items in grdPayments
function ckbinvoice_checkchanged(object)
{
    removeFormat();

    var paymentTotal = document.getElementById('ctl00_MainContentColumn_lblPayment');
    var convenienceFee = document.getElementById('ctl00_MainContentColumn_lblConvenienceFee');
    var totalTransaction = document.getElementById('ctl00_MainContentColumn_lblTotalTransaction');
    var actualConvFee = document.getElementById('ctl00_MainContentColumn_hfConvenienceFee').value;
    var amount = document.getElementById(object.id.replace('ckb','txt')).value.replace('$','').replace('(','-').replace(')','').replace(',','');
    amount = amount.replace(',','');
    amount = amount.replace(',','');
    amount = amount.replace(',','');
    amount = amount.replace(',','');
    amount = amount.replace(',','');    
    
    
    var savedAmount;
   
    if (object.checked)
    {   
        paymentTotal.innerText = Math.round((parseFloat(paymentTotal.innerText) + parseFloat(amount))*100)/100;               
    }
    else
    {
        document.getElementById('ctl00_MainContentColumn_cbAddAll').checked = false;
        paymentTotal.innerText = Math.round((parseFloat(paymentTotal.innerText) - parseFloat(amount))*100)/100;        
    }
    
    var value = document.getElementById(object.id.replace('ckb','hf2')).value; 
    var noManual = document.getElementById('ctl00_MainContentColumn_hfAmountNoManual');
    var manual = document.getElementById('ctl00_MainContentColumn_hfAmountManual');
    
    if (value != 'Payment on Account')
    {     
        if (object.checked)
        {          
            noManual.value = Math.round((parseFloat(noManual.value) + parseFloat(amount))*100)/100;    
        } 
        else
        {
            noManual.value = Math.round((parseFloat(noManual.value) - parseFloat(amount))*100)/100;    
        } 
    }
    else
    {
        if (object.checked)
        {          
            manual.value = amount;    
        } 
        else
        {
            manual.value = '';
        } 
    }
    
    if (parseFloat(paymentTotal.innerText) > 0)
    {
        convenienceFee.innerText = Math.round((parseFloat(actualConvFee))*100)/100;
        totalTransaction.innerText = Math.round((parseFloat(paymentTotal.innerText) + parseFloat(actualConvFee))*100)/100;
    }
    else
    {
        convenienceFee.innerText = '0';
        totalTransaction.innerText = '0';
    }
    
    formatAmounts();
}

function removeFormat()
{
    var paymentTotal = document.getElementById('ctl00_MainContentColumn_lblPayment');
    var convenienceFee = document.getElementById('ctl00_MainContentColumn_lblConvenienceFee');
    var totalTransaction = document.getElementById('ctl00_MainContentColumn_lblTotalTransaction');
    
    paymentTotal.innerText = paymentTotal.innerText.replace('$','').replace('(','-').replace(')','').replace(',','');
    paymentTotal.innerText = paymentTotal.innerText.replace(',','');
    paymentTotal.innerText = paymentTotal.innerText.replace(',','');
    paymentTotal.innerText = paymentTotal.innerText.replace(',','');
    paymentTotal.innerText = paymentTotal.innerText.replace(',','');
    paymentTotal.innerText = paymentTotal.innerText.replace(',','');    
    
    convenienceFee.innerText = convenienceFee.innerText.replace('$','').replace('(','-').replace(')','').replace(',','');
    convenienceFee.innerText = convenienceFee.innerText.replace(',','');
    convenienceFee.innerText = convenienceFee.innerText.replace(',','');
    convenienceFee.innerText = convenienceFee.innerText.replace(',','');
    convenienceFee.innerText = convenienceFee.innerText.replace(',','');
    convenienceFee.innerText = convenienceFee.innerText.replace(',','');
    
    totalTransaction.innerText = totalTransaction.innerText.replace('$','').replace('(','-').replace(')','').replace(',','');
    totalTransaction.innerText = totalTransaction.innerText.replace(',','');
    totalTransaction.innerText = totalTransaction.innerText.replace(',','');
    totalTransaction.innerText = totalTransaction.innerText.replace(',','');
    totalTransaction.innerText = totalTransaction.innerText.replace(',','');
    totalTransaction.innerText = totalTransaction.innerText.replace(',','');
}

function formatAmounts()
{
    var paymentTotal = document.getElementById('ctl00_MainContentColumn_lblPayment');
    var convenienceFee = document.getElementById('ctl00_MainContentColumn_lblConvenienceFee');
    var totalTransaction = document.getElementById('ctl00_MainContentColumn_lblTotalTransaction');
    
    paymentTotal.innerText = "$" + paymentTotal.innerText;
    convenienceFee.innerText = "$" + convenienceFee.innerText;
    totalTransaction.innerText = "$" + totalTransaction.innerText;
    
    if (paymentTotal.innerText.indexOf("-") > -1)
    {
        paymentTotal.innerText = paymentTotal.innerText.replace('-','(') + ')';
    }
    
    if (totalTransaction.innerText.indexOf("-") > -1)
    {
        totalTransaction.innerText = totalTransaction.innerText.replace('-','(') + ')';
    }
    paymentTotal.innerText = addCommas(paymentTotal.innerText);
    convenienceFee.innerText  = addCommas(convenienceFee.innerText);
    totalTransaction.innerText  = addCommas(totalTransaction.innerText);
}

function check_all(object)
{
    var grid = document.getElementById('ctl00_MainContentColumn_gvInvoices');
    var cnt = 2;
    
    for(i=0; i < grid.rows.length; i++)
    {
        cnt = 2 + i;
        var val;
        if (cnt < 10)
        {
            val = '0' + cnt;
        }
        else
        {
            val = cnt;
        }
        var checkbox = document.getElementById('ctl00_MainContentColumn_gvInvoices_ctl' + val + '_ckbInvoice');
       
        if (checkbox != null)
        {
            if (object.checked)
            {
                if (!checkbox.checked)
                {
                    checkbox.checked = true; 
                    ckbinvoice_checkchanged(checkbox)
                }
            }
            else
            {
                if (checkbox.checked)
                {
                    checkbox.checked = false;
                    ckbinvoice_checkchanged(checkbox)
                }
            }
        }
    }
    return false;
}

function formatItem(object)
{
    if (!object.readOnly)
    {
        var isNegitive = false; 
        if (object.value.indexOf('-') > -1 || object.value.indexOf('(') > -1)
        {
            if (object.value.length == 1)
            {
                object.value = '';
                return false;
            }
            isNegitive = true;
        }
        
        object.value = object.value.replace('$','').replace('(','').replace(')','').replace('-','').replace(',','');
        object.value = object.value.replace(',','');
        object.value = object.value.replace(',','');
        object.value = object.value.replace(',','');
        object.value = object.value.replace(',','');
        object.value = object.value.replace(',','');
        
        if (object.value == '')
        {
            object.value = '0.00';
        }
        
        if (isNegitive)
        {
            object.value = '($' + Math.round((parseFloat(object.value))*100)/100 + ')';
        }
        else
        {
            object.value = '$' + Math.round((parseFloat(object.value))*100)/100;
        }
        object.value = addCommas(object.value);
    }    
}

function numbersOnly(object, evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57) && (charCode < 95 || charCode > 106) && charCode != 190 && charCode != 110 && charCode != 37 && charCode != 39  && charCode != 46) // && charCode != 189 && charCode != 109 ADD THESE BACK TO ALLOW NEGITIVES
    {
        return false;
    }
    
    if ((charCode == 189 || charCode == 109) && object.value.indexOf('-') > -1)
    {
        return false;
    }
    else if (charCode == 189 || charCode == 109)
    {
        object.value = '-' + object.value;
        return false;
    }
    
    if ((charCode == 110 || charCode == 190) && object.value.indexOf('.') > -1)
    {
        return false;
    }
    
    if (object.value.indexOf('.') > -1)
    {   
        Math.round((parseFloat(object.value))*100)/100;
    }
    
    if (object.value.indexOf('-') > -1)
    {
        object.value = object.value.replace('-','');
        object.value = '-' + object.value
    }
    
    var checkbox = document.getElementById(object.id.replace('txt','ckb'));    
    
    return true;
}



function addCommas( strValue ) 
{
    var objRegExp = new RegExp('(-?[0-9]+)([0-9]{3})'); 
    
    while(objRegExp.test(strValue)) 
    {    
        strValue = strValue.replace(objRegExp, '$1,$2');
    }
    
    return strValue;
}



function updateAmount(object)
{
    var val = document.getElementById('ctl00_MainContentColumn_hfAmountNoManual').value;
    if (val == '')
    {
        val = '0';
    }
    
    var objectValue = '0';
    if (object.value != '')
    {
        objectValue = object.value;
    }
        
    var checkbox = document.getElementById(object.id.replace('txt','ckb'));    
    if (checkbox.checked)
    {         
        removeFormat();

        var paymentTotal = document.getElementById('ctl00_MainContentColumn_lblPayment');
        var convenienceFee = document.getElementById('ctl00_MainContentColumn_lblConvenienceFee');
        var totalTransaction = document.getElementById('ctl00_MainContentColumn_lblTotalTransaction');
        var actualConvFee = document.getElementById('ctl00_MainContentColumn_hfConvenienceFee').value;
        
        paymentTotal.innerText = Math.round((parseFloat(val) + parseFloat(objectValue))*100)/100;  
        
        if (parseFloat(paymentTotal.innerText) > 0)
        {
            convenienceFee.innerText = Math.round((parseFloat(actualConvFee))*100)/100;
            totalTransaction.innerText = Math.round((parseFloat(paymentTotal.innerText) + parseFloat(actualConvFee))*100)/100;
        }
        else
        {
            convenienceFee.innerText = '0';
            totalTransaction.innerText = '0';
        }
        
        formatAmounts();
    }
}

function removeFormatOnFocus(object)
{
    if (!object.readOnly)
    {
        object.value = object.value.replace('$','').replace('(','-').replace(')','');
        
        //Hack to fix the JS Bug of not replacing all chars, but rather only the first.
        object.value = object.value.replace(',','');
        object.value = object.value.replace(',','');
        object.value = object.value.replace(',','');
        object.value = object.value.replace(',','');
        object.value = object.value.replace(',','');
        object.value = object.value.replace(',','');
        
        if (object.value == "0" || object.value == "0.00")
        {
            object.value = ''; 
        }
        
        SetEnd(object);
    }    
}

function updateTotalvalues(object)
{
    var checkbox = document.getElementById(object.id.replace('txt','ckb'));
    
    if (checkbox.checked)
    {
        ckbinvoice_checkchanged(object);
    }
}

function SetEnd(object)
{
    if (object.createTextRange)
    {
        var FieldRange = object.createTextRange();
        FieldRange.moveStart('character', object.value.length);
        FieldRange.collapse();
        FieldRange.select();
    }
}

function checkvalue(object)
{
    var lbl = document.getElementById(object.id.replace('ddlAboutUs','lblAdditionalField'));
    var tr = document.getElementById('trShowAdditional');
    switch (object.options[object.selectedIndex].value)
    {
        case "Website":            
            tr.style.display = '';
            tr.style.textAlign = 'left';
            lbl.style.display = 'inline';
            lbl.innerText = 'Which website: ';
            lbl.textContent = 'Which website: '; //Firefox
            break;
        case "Associate Referral":
            tr.style.display = '';
            tr.style.textAlign = 'left';
            lbl.innerText = 'Associate name: ';
            lbl.textContent = 'Associate name: ';
            break;        
        case "Newspaper":
            tr.style.display = '';
            tr.style.textAlign = 'left';
            lbl.innerText = 'Which one: ';
            lbl.textContent = 'Which one: ';
            break;
        case "Other":
            tr.style.display = '';
            tr.style.textAlign = 'left';
            lbl.innerText = 'Other: ';
            lbl.textContent = 'Other: ';
            break;
        default:
            tr.style.display = 'none';
            tr.style.textAlign = 'center';
            lbl.innerText = '';
            lbl.textContent = '';
            break;
    }
}

function checkPositionText(source, clientside_arguments)
{         
    if (document.getElementById('ctl00_MainContentColumn_divShowPositionText').style.display == 'block')
    {
        if (clientside_arguments.Value.length > 0)
        {
            clientside_arguments.IsValid = true;
        }
        else
        {
            clientside_arguments.IsValid = false;
        }
    }
    else
    {
        clientside_arguments.IsValid = true;
    }
}

function checkLocationDDL(source, clientside_arguments)
{         
    if (document.getElementById('ctl00_MainContentColumn_divShowLocationDDL').style.display == 'block')
    {
        if (clientside_arguments.Value != '-1')
        {
            clientside_arguments.IsValid = true;
        }
        else
        {
            clientside_arguments.IsValid = false;
        }
    }
    else
    {
        clientside_arguments.IsValid = true;
    }
}

function checkAdditionalFieldText(source, clientside_arguments)
{       
    var aboutUs = document.getElementById('ctl00_MainContentColumn_ddlAboutUs');  
    if (aboutUs.selectedIndex == 2 || aboutUs.selectedIndex == 6 || aboutUs.selectedIndex == 11 || aboutUs.selectedIndex == 12)
    {
        if (clientside_arguments.Value.length > 0)
        {
            clientside_arguments.IsValid = true;
        }
        else
        {
            clientside_arguments.IsValid = false;
        }
    }
    else
    {
        clientside_arguments.IsValid = true;
    }
}

function isDeclinedSelected(object)
{
    var table = document.getElementById ('ctl00_MainContentColumn_cblRaces');
    var c = table.getElementsByTagName("input"); 
     
    if (c.length > 5)
    {
        if(c[0].checked)
        {
            for (var i=1;i<c.length;i++) 
            { 
                if (c[i].checked) 
                { 
                    c[i].checked = false; 
                } 
            }
        }
    }
    else
    {     
        if(c[0].checked || c[6].checked)
        {
            for (var i=1;i<c.length - 1;i++) 
            { 
                if (c[i].checked) 
                { 
                    c[i].checked = false; 
                } 
            }
        }
    }     
}

function validateEmail(source, clientside_arguments) 
{
    var str = clientside_arguments.Value;
    var at = "@";
    var dot = ".";
    var lat = str.indexOf(at);
    var lstr = str.length;
    var ldot = str.indexOf(dot);

    if (str.length == 0)
    {	   
        clientside_arguments.IsValid = true;
        return false;
    }

    if (str.indexOf(at) == -1)
    {	   
        clientside_arguments.IsValid = false;
        return false;
    }

    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr)
    {
        clientside_arguments.IsValid = false;
        return false;
    }

    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr)
    {
        clientside_arguments.IsValid = false;
        return false;
    }

    if (str.indexOf(at,(lat+1)) != -1)
    {
        clientside_arguments.IsValid = false;
        return false;
    }

    if (str.substring(lat-1,lat) == dot || str.substring(lat+1,lat+2) == dot)
    {
        clientside_arguments.IsValid = false;
        return false;
    }

    if (str.indexOf(dot,(lat+2)) == -1)
    {
        clientside_arguments.IsValid = false;
        return false;
    }

    if (str.indexOf(" ") != -1)
    {
        clientside_arguments.IsValid = false;
        return false;
    }

    clientside_arguments.IsValid = true;					
    return true;
}

function checkCBL(source, clientside_arguments) 
{
    
}

function checkRBL(source, clientside_arguments) 
{
    
}