﻿function CheckABA(sender, args)
{
    n = 0;
    for (i = 0; i < args.Value.length; i += 3) {
        n += parseInt(args.Value.charAt(i),     10) * 3
          +  parseInt(args.Value.charAt(i + 1), 10) * 7
          +  parseInt(args.Value.charAt(i + 2), 10);
    }

  // If the resulting sum is an even multiple of ten (but not zero),
  // the aba routing number is good.

    if (n != 0 && n % 10 == 0)
        args.IsValid = true;
    else
        args.IsValid = false;
}

function ValidateLicensesNumeric(sender, args)
{
    obj = sender.controltovalidate.replace("Licenses","");
    if(document.getElementById(obj).checked && args.Value != "")
    {
        var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/; 
        args.IsValid = objRegExp.test(args.Value)
    }
    else
        args.IsValid = true;
}

function ValidateAmountNumeric(sender, args)
{
    if(args.Value != "")
    {
        var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/; 
        args.IsValid = objRegExp.test(removeCurrency(args.Value));
    }
}

function ValidateLicensesExists(sender, args)
{
    obj = sender.controltovalidate.replace("Licenses","");
    if(document.getElementById(obj).checked)
        args.IsValid = (args.Value != "");
}

function ValidateCheckbox(sender, args)
{
    obj = document.getElementById(sender.CheckBoxControl);
    args.IsValid = obj.checked;
}

function getTotalID()
{
    elements = document.getElementsByTagName("input");
        for(i=0; i<elements.length; i++)
        {
            if(elements[i].id.indexOf("total") > 0)
            {
                return elements[i].id;
            }
        }
}

oldValue = -1;

function UpdateTotal(Price, Licenses, Add)
{
    num = 1;
    oldPrice = 0;
    totalID = getTotalID();
    
    Price = Math.round(Price*100);
    if(oldValue != -1)
        oldPrice = oldValue * Price;       
    /*
    if(Licenses != "")
    {
        elements = document.getElementsByTagName("input");
        for(i=0; i<elements.length; i++)
        {
            if(elements[i].id.indexOf(Licenses) > 0)
            {
                if(elements[i].value == "")
                    elements[i].value = num;
                else
                    num = elements[i].value;
            }
        }
    }
    
    if(!validateInteger(num))
    {
        alert("The number must be an integer.");
        return;
    }
    */
    
    Delta = Price * num - oldPrice;
    if(document.getElementById(totalID).value == "")
        currentTotal = 0;
    else
        currentTotal = Math.round(removeCurrency(document.getElementById(totalID).value) * 100);
    if(Add)
        newTotal = currentTotal + Delta;
    else
        newTotal = currentTotal - Delta;
    
    
    document.getElementById(totalID).innerText = addCurrency(FormatCurrency(newTotal/100));
    oldValue = -1;
}

function FormatCurrency(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}
function StoreOldValue(value)
{
    if(value != "" && validateInteger(value))
        oldValue = value;
}

function UpdateNumber(Price, Component)
{
    elements = document.getElementsByTagName("input");
    isChecked = false;
    for(i=0; i<elements.length; i++)
    {
        if(elements[i].id.indexOf(Component) > 0 && elements[i].type == "checkbox")
            isChecked = elements[i].checked;   
    }
    if(isChecked)
        UpdateTotal(Price, Component + "Licenses", true, true);
}

function CheckCCExp(sender, args)
{
    var ExpY = document.getElementById(ExpYear);
    var ExpM = document.getElementById(ExpMon);
    var Y = ExpY.options[ExpY.options.selectedIndex].value;
    var M = ExpM.options[ExpM.options.selectedIndex].value;
    var ExpDate = new Date(Y, M, 1);
    var Today = new Date();
    args.IsValid = (ExpDate > Today);
}