﻿function IsNumber(val)
{
	if ((val != "1") && (val != "2") && (val != "3") && (val != "4") && (val != "5") && (val != "6") && (val != "7") && (val != "8") && (val != "9") && (val != "0"))
	{
		return false;
	}
	else
	{
		return true;
	}
}

function TruncateText(textElement, maxSize)
{
	try
	{
		textElement.value = textElement.value.substr(0, maxSize);
	}
	catch(e)
	{}
}

function FormatPhoneNumber(phoneInputElement)
{
	try
	{
		var valueLength = phoneInputElement.value.length;
		if (!IsNumber(phoneInputElement.value.substr(valueLength - 1, 1)))
		{
			phoneInputElement.value = phoneInputElement.value.substring(0, (valueLength - 2));
			return;
		}
		
		switch (valueLength){
		    case 1:
		    {
		        phoneInputElement.value = "(" + phoneInputElement.value;
		    }
		    break;
		    case 4:
		    {
		        phoneInputElement.value +=  ") ";
		    }
		    break;
			case 9:
			{
				phoneInputElement.value +=  "-";
			}
			break
		}
	}
	catch(e)
	{
	}
}

function FormatUnitedStatesPostalCode(postalCodeInputElement)
{
	try
	{
		var valueLength = postalCodeInputElement.value.length;
		if(!IsNumber(postalCodeInputElement.value.substr(valueLength - 1, 1)))
		{
			postalCodeInputElement.value = postalCodeInputElement.value.substring(0, (valueLength - 2));
			return;
		}
		
		switch (valueLength){
			case 6:
			{
				postalCodeInputElement.value = postalCodeInputElement.substr(0, 5) +  "-" + postalCodeInputElement.substr(5, 1);
			}
			break;
		}
	}
	catch(e)
	{}
}

function FormatDate(dateElement)
{
	try
	{
		var valueLength = dateElement.value.length;
		if(!IsNumber(dateElement.value.substr(valueLength - 1, 1)))
		{
			dateElement.value = dateElement.value.substring(0, (valueLength - 2));
			return;
		}
		
		switch (valueLength){
		    case 2:
		    {
		        dateElement.value += "/";
		    }
		    break;
		    case 5:
		    {
		        dateElement.value += "/";
		    }
		    break;
		}
	}
	catch(e)
	{}
}

function CopyField(sourceElement, destinationElementID)
{
    document.getElementById(destinationElementID).value = sourceElement.value;
}

function OpenPopupWindow(url, height, width)
{   
    if (height == null)
        height = 400;
    if (width == null)
        width = 400;
        
    var features = "channelmode=no,directories=no,fullscreen=no,height=" + height + ",location=no,menubar=no,resizable=no,scrollbars=yes,toolbar=no,width=" + width;
    window.open(url, "_blank", features, false);
}

function ValidateCreditCardLength(type, cardNumber)
{
    switch(type.toLowerCase())
    {
        case "visa":
            return ((cardNumber.length == 13) || (cardNumber.length == 16));
            break;
        case "mastercard":
            return (cardNumber.length == 16);
            break;
        case "american express":
            return (cardNumber.length == 15);
            break;
        case "discover":
            return (cardNumber.length == 16);
            break;
    }
}

function ValidateCreditCardStartDigits(type, cardNumber)
{
    switch(type.toLowerCase())
    {
        case "visa":
            break;
        case "mastercard":
            break;
        case "american express":
            break;
        case "discover":
            break;
    }
}

function ValidateCreditCardLUHN(cardNumber) 
{
    if (! isNum(cardNumber)) 
    {
        return false;
    }

    var no_digit = cardNumber.length;
    var oddoeven = no_digit & 1;
    var sum = 0;

    for (var count = 0; count < no_digit; count++) 
    {
        var digit = parseInt(CardNumber.charAt(count));
        
        if (!((count & 1) ^ oddoeven)) 
        {
            digit *= 2;
            if (digit > 9)
                digit -= 9;
        }
        
        sum += digit;
    }
    
    if (sum % 10 == 0)
        return true;
    else
        return false;
}

function doMask(control, mask)
{
    var input = control.value;
    var newValue = '';
    var maskIndex;
    var inputIndex;
    var isNumber;
    
    for(var i = 0; i < input.length; i++)
    {
        inputChar = input.charAt(i);
        maskChar = mask.charAt(i);  
        if(inputChar >= '0' && inputChar <= '9')
        {
            isNumber = true;
        }
        else
        {
            isNumber = false;
        }
        
        if(maskChar == '')
        {
            control.value = newValue; return;
        }
            
        if(maskChar == '#')
        {
            if(isNumber)
            {
                newValue = newValue + inputChar;
            }
        }
        else
        {
            if(maskChar == inputChar)
            {
                newValue = newValue + inputChar;
            }
            else
            {
                if(isNumber)
                {
                    newValue = newValue + maskChar + inputChar;
                }
                else
                {
                    newValue = newValue + maskChar;
                }
            }
        }
    }
    
    control.value = newValue;
}