﻿// author: Tom Youkers
// company: AURORA Consulting Group, Inc.
// date: 1/16/2009
// 
// This file was written to provide some special validation for dealing with the bad zip codes used for National Grid.

function CheckCommercialForm(userInputForm)
{
    var userForm = userInputForm;
    if (userForm != null)
    {

        // vars used for input validation.
        var bIsValid = true;
        var serviceZipCode = userForm.elements['ServiceZip'].value;
        var sMessage = '';
        var regEmail = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
        var regPhone = /((\(\d{3}\) ?)|(\d{3}-))\d{3}-\d{4}/;
		
        try
        {
        if (userForm.elements['FirstName'].value.length == 0)
        {
            bIsValid = false;
            sMessage += '\n>Contact First Name is required.';
        }
        if (userForm.elements['LastName'].value.length == 0)
        {
            bIsValid = false;
            sMessage += '\n>Contact Last Name is required.';
        }
        if (userForm.elements['ServiceAddress'].value.length == 0)
        {
            bIsValid = false;
            sMessage += '\n>Service Address is required.';
        }
        if (userForm.elements['ServiceCity'].value.length == 0)
        {
            bIsValid = false;
            sMessage += '\n>Service City is required.';
        }
        if ((isNaN(serviceZipCode) == true) || (serviceZipCode.length == 0))
        {
            bIsValid = false;
            sMessage += '\n>Service Zip Code is required and must be numeric.';
        }
		
        if ((userForm.elements['ServicePhone'].value.length == 0) || (regPhone.test(userForm.elements['ServicePhone'].value) == false))
        {
			
            bIsValid = false;
            sMessage += '\n>Service Phone is required and must conform to standard US phone numbers.';
            sMessage += '  (ie: (444) 555-5555)';
        }
        //alert(reg);
        if ((userForm.elements['Email'].value.length == 0) || (regEmail.test(userForm.elements['Email'].value) == false))
        {
            bIsValid = false;
            sMessage += '\n>Service Email is required and must conform to standard email address patterns.';
            sMessage += '  (ie: example@somedomain.com)';
        }
        if (userForm.elements['Email'].value != userForm.elements['EmailConfirm'].value)
        {
            bIsValid = false;
            sMessage += '\n>Service Email and Service Confirm Email must be identical';
        }
        if (userForm.elements['BillingAddress'].value.length == 0)
        {
            bIsValid = false;
            sMessage += '\n>Billing Address 1 is required.';
        }
        if (userForm.elements['BillingCity'].value.length == 0)
        {
            bIsValid = false;
            sMessage += '\n>Billing City is required.';
        }
        if (userForm.elements['BillingState'].options[userForm.elements['BillingState'].selectedIndex].value == 'State/Province')
        {
            bIsValid = false;
            sMessage += '\n>Billing State/Province is required.';
        }
        if ((isNaN(userForm.elements['BillingZip'].value) == true) || (userForm.elements['BillingZip'].value.length == 0))
        {
            bIsValid = false;
            sMessage += '\n>Billing Zip Code is required and must be numeric.';
        }
        if ((userForm.elements['BillingPhone'].value.length == 0) || (regPhone.test(userForm.elements['BillingPhone'].value) == false))
        {
            bIsValid = false;
            sMessage += '\n>Billing Address Phone is required and must conform to standard US phone numbers.';
            sMessage += '  (ie: (444) 555-5555)';
        }
        // National Grid Electric split in two parts
        /*if (userForm.elements['ElectricUtility'].options[userForm.elements['ElectricUtility'].selectedIndex].text == 'Choose Your Electric Utility')
        {
            bIsValid = false;
            sMessage += '\n>Electric Utility is required.';
        }*/
        /*if (userForm.elements['ElectricUtility'].options[userForm.elements['ElectricUtility'].selectedIndex].text == 'National Grid')
        {*/
            if (((userForm.elements['NationalGridAccountNumberA'].value.length > 0) && ((userForm.elements['NationalGridAccountNumberA'].value.length < 5) ||(isNaN(userForm.elements['NationalGridAccountNumberA'].value) == true)) || ((userForm.elements['NationalGridAccountNumberB'].value.length > 0) && ((userForm.elements['NationalGridAccountNumberB'].value.length < 5) || (isNaN(userForm.elements['NationalGridAccountNumberB'].value) == true)))))
            {
                bIsValid = false;
                sMessage += '\n>Both parts of the National Grid Account Number must be numeric and 5 digits long.';
            }
            else
            {
                userForm.elements['NationalGridAccountNumber'].value = userForm.elements['NationalGridAccountNumberA'].value + '-' + userForm.elements['NationalGridAccountNumberB'].value;
            }
            if (((userForm.elements['AdditionalNationalGridAccountNumber1A'].value.length > 0) && ((userForm.elements['AdditionalNationalGridAccountNumber1A'].value.length < 5) ||(isNaN(userForm.elements['AdditionalNationalGridAccountNumber1A'].value) == true)) || ((userForm.elements['AdditionalNationalGridAccountNumber1B'].value.length > 0) && ((userForm.elements['AdditionalNationalGridAccountNumber1B'].value.length < 5) || (isNaN(userForm.elements['AdditionalNationalGridAccountNumber1B'].value) == true)))))
            {
                bIsValid = false;
                sMessage += '\n>Both parts of the Addtional National Grid Account Number 1 must be numeric and 5 digits long.';
            }
            else
            {
                userForm.elements['AdditionalNationalGridAccountNumber1'].value = userForm.elements['AdditionalNationalGridAccountNumber1A'].value + '-' + userForm.elements['AdditionalNationalGridAccountNumber1B'].value;
            }
            if (((userForm.elements['AdditionalNationalGridAccountNumber2A'].value.length > 0) && ((userForm.elements['AdditionalNationalGridAccountNumber2A'].value.length < 5) ||(isNaN(userForm.elements['AdditionalNationalGridAccountNumber2A'].value) == true)) || ((userForm.elements['AdditionalNationalGridAccountNumber2B'].value.length > 0) && ((userForm.elements['AdditionalNationalGridAccountNumber2B'].value.length < 5) || (isNaN(userForm.elements['AdditionalNationalGridAccountNumber2B'].value) == true)))))
            {
                bIsValid = false;
                sMessage += '\n>Both parts of the Addtional National Grid Account Number 2 must be numeric and 5 digits long.';
            }
            else
            {
                userForm.elements['AdditionalNationalGridAccountNumber2'].value = userForm.elements['AdditionalNationalGridAccountNumber2A'].value + '-' + userForm.elements['AdditionalNationalGridAccountNumber2B'].value;
            }
            if (((userForm.elements['AdditionalNationalGridAccountNumber3A'].value.length > 0) && ((userForm.elements['AdditionalNationalGridAccountNumber3A'].value.length < 5) ||(isNaN(userForm.elements['AdditionalNationalGridAccountNumber3A'].value) == true)) || ((userForm.elements['AdditionalNationalGridAccountNumber3B'].value.length > 0) && ((userForm.elements['AdditionalNationalGridAccountNumber3B'].value.length < 5) || (isNaN(userForm.elements['AdditionalNationalGridAccountNumber3B'].value) == true)))))
            {
                bIsValid = false;
                sMessage += '\n>Both parts of the Addtional National Grid Account Number 3 must be numeric and 5 digits long.';
            }
            else
            {
                userForm.elements['AdditionalNationalGridAccountNumber3'].value = userForm.elements['AdditionalNationalGridAccountNumber3A'].value + '-' + userForm.elements['AdditionalNationalGridAccountNumber3B'].value;
            }
        //}
        //NYSEG Selected
        // checks that the input is valid and appends the two parts into one hidden input.
        /*if (userForm.elements['ElectricUtility'].options[userForm.elements['ElectricUtility'].selectedIndex].text == 'NYSEG')
        {*/
            if ((userForm.elements['NysegPodIdB'].value.length > 0) && ((userForm.elements['NysegPodIdB'].value.length < 12) || (isNaN(userForm.elements['NysegPodIdB'].value) == true)))
            {
                bIsValid = false;
                sMessage += '\n>NYSEG Pod ID must begin with "N01" and is 15 characters long.';
            }
            else
            {
                userForm.elements['NysegPodId'].value = userForm.elements['NysegPodIdA'].value + '-' + userForm.elements['NysegPodIdB'].value;
            }
            if ((userForm.elements['AddtionalNysegPodId1B'].value.length > 0) && ((userForm.elements['AddtionalNysegPodId1B'].value.length < 12) || (isNaN(userForm.elements['AddtionalNysegPodId1B'].value) == true)))
            {
                bIsValid = false;
                sMessage += '\n>Additional NYSEG Pod ID 1 must begin with "N01" and is 15 characters long.';
            }
            else if ((userForm.elements['AddtionalNysegPodId1B'].value.length > 0) && ((userForm.elements['AddtionalNysegPodId1B'].value.length == 12) || (isNaN(userForm.elements['AddtionalNysegPodId1B'].value) == false)))
            {
                // append the two together.
                userForm.elements['AdditionalNysegPodId1'].value = userForm.elements['AdditionalNysegPodId1A'].value + '-' + userForm.elements['AdditionalNysegPodId1B'].value;
            }
            if ((userForm.elements['AddtionalNysegPodId2B'].value.length > 0) && ((userForm.elements['AddtionalNysegPodId2B'].value.length < 12) || (isNaN(userForm.elements['AddtionalNysegPodId2B'].value) == true)))
            {
                bIsValid = false;
                sMessage += '\n>Additional NYSEG Pod ID 2 must begin with "N01" and is 15 characters long.';
            }
            else if ((userForm.elements['AddtionalNysegPodId2B'].value.length > 0) && ((userForm.elements['AddtionalNysegPodId2B'].value.length == 12) || (isNaN(userForm.elements['AddtionalNysegPodId2B'].value) == false)))
            {
                // append the two together.
                userForm.elements['AdditionalNysegPodId2'].value = userForm.elements['AdditionalNysegPodId2A'].value + '-' + userForm.elements['AdditionalNysegPodId2B'].value;
            }
            if ((userForm.elements['AddtionalNysegPodId3B'].value.length > 0) && ((userForm.elements['AddtionalNysegPodId3B'].value.length < 12) || (isNaN(userForm.elements['AddtionalNysegPodId3B'].value) == true)))
            {
                bIsValid = false;
                sMessage += '\n>Additional NYSEG Pod ID 3 must begin with "N01" and is 15 characters long.';
            }
            else if ((userForm.elements['AddtionalNysegPodId3B'].value.length > 0) && ((userForm.elements['AddtionalNysegPodId3B'].value.length == 12) || (isNaN(userForm.elements['AddtionalNysegPodId3B'].value) == false)))
            {
                // append the two together.
                userForm.elements['AdditionalNysegPodId3'].value = userForm.elements['AdditionalNysegPodId3A'].value + '-' + userForm.elements['AdditionalNysegPodId3B'].value;
            }
        //}
        //RG & E Selected
        // checks that the input is valid and appends the two parts into one hidden input.
        /*if (userForm.elements['ElectricUtility'].options[userForm.elements['ElectricUtility'].selectedIndex].text == 'RG&E')
        {*/
            if ((userForm.elements['RGEPodIDB'].value.length > 0) && (userForm.elements['RGEPodIDB'].value.length != 12))
            {
                bIsValid = false;
                sMessage += '\n>RG & E Pod ID must begin with "R01" and is 15 characters long.';
            }
            else
            {
                userForm.elements['RGEPodID'].value = userForm.elements['RGEPodIDA'].value + '-' + userForm.elements['RGEPodIDB'].value;
            }
            if ((userForm.elements['AdditionalRGEPodID1B'].value.length > 0) && (userForm.elements['AdditionalRGEPodID1B'].value.length != 12))
            {
                bIsValid = false;
                sMessage += '\n>Additional RG & E Pod ID 1 must begin with "R01" and is 15 characters long.';
            }
            else
            {
                userForm.elements['AdditionalRGEPodID1'].value = userForm.elements['AdditionalRGEPodID1A'].value + '-' + userForm.elements['AdditionalRGEPodID1B'].value;
            }
            if ((userForm.elements['AdditionalRGEPodID2B'].value.length > 0) && (userForm.elements['AdditionalRGEPodID2B'].value.length != 12))
            {
                bIsValid = false;
                sMessage += '\n>Additional RG & E Pod ID 2 must begin with "R01" and is 15 characters long.';
            }
            else
            {
                userForm.elements['AdditionalRGEPodID2'].value = userForm.elements['AdditionalRGEPodID2A'].value + '-' + userForm.elements['AdditionalRGEPodID2B'].value;
            }
            if ((userForm.elements['AdditionalRGEPodID3B'].value.length > 0) && (userForm.elements['AdditionalRGEPodID3B'].value.length != 12))
            {
                bIsValid = false;
                sMessage += '\n>Additional RG & E Pod ID 3 must begin with "R01" and is 15 characters long.';
            }
            else
            {
                userForm.elements['AdditionalRGEPodID3'].value = userForm.elements['AdditionalRGEPodID3A'].value + '-' + userForm.elements['AdditionalRGEPodID3B'].value;
            }
        //}
        /*if (userForm.elements['NaturalGasUtility'].options[userForm.elements['NaturalGasUtility'].selectedIndex].text == 'Choose Your Natural Gas Utility')
        {
            bIsValid = false;
            sMessage += '\n>Natural Gas Utility is required.';
        }*/
        /*if (userForm.elements['NaturalGasUtility'].options[userForm.elements['NaturalGasUtility'].selectedIndex].text == 'National Fuel Gas')
        {*/
            if (((userForm.elements['NationalFuelAccountNumberA'].value.length > 0) || (userForm.elements['NationalFuelAccountNumberA'].value.length > 0)) && (((isNaN(userForm.elements['NationalFuelAccountNumberA'].value) == true) || (userForm.elements['NationalFuelAccountNumberA'].value.length < 7))))
            {
                bIsValid = false;
                sMessage += '\n>National Fuel Account Number is required to have values that are numeric.  The first part is 7 digits long.';
            }
            else
            {
                userForm.elements['NationalFuelAccountNumber'].value = userForm.elements['NationalFuelAccountNumberA'].value + '-' + userForm.elements['NationalFuelAccountNumberB'].value;
            }
            if (((userForm.elements['AdditionalNationalFuelAccountNumber1A'].value.length > 0) || (userForm.elements['AdditionalNationalFuelAccountNumber1A'].value.length > 0)) && (((isNaN(userForm.elements['AdditionalNationalFuelAccountNumber1A'].value) == true) || (userForm.elements['AdditionalNationalFuelAccountNumber1A'].value.length < 7))))
            {
                bIsValid = false;
                sMessage += '\n>Additional National Fuel Account Number 1 is required to have values that are numeric.  The first part is 7 digits long.';
            }
            else
            {
                userForm.elements['AdditionalNationalFuelAccountNumber1'].value = userForm.elements['AdditionalNationalFuelAccountNumber1A'].value + '-' + userForm.elements['AdditionalNationalFuelAccountNumber1B'].value;
            }
            if (((userForm.elements['AdditionalNationalFuelAccountNumber2A'].value.length > 0) || (userForm.elements['AdditionalNationalFuelAccountNumber2A'].value.length > 0)) && (((isNaN(userForm.elements['AdditionalNationalFuelAccountNumber2A'].value) == true) || (userForm.elements['AdditionalNationalFuelAccountNumber2A'].value.length < 7))))
            {
                bIsValid = false;
                sMessage += '\n>Additional National Fuel Account Number 2 is required to have values that are numeric.  The first part is 7 digits long.';
            }
            else
            {
                userForm.elements['AdditionalNationalFuelAccountNumber2'].value = userForm.elements['AdditionalNationalFuelAccountNumber2A'].value + '-' + userForm.elements['AdditionalNationalFuelAccountNumber2B'].value;
            }
            if (((userForm.elements['AdditionalNationalFuelAccountNumber3A'].value.length > 0) || (userForm.elements['AdditionalNationalFuelAccountNumber3A'].value.length > 0)) && (((isNaN(userForm.elements['AdditionalNationalFuelAccountNumber3A'].value) == true) || (userForm.elements['AdditionalNationalFuelAccountNumber3A'].value.length < 7))))
            {
                bIsValid = false;
                sMessage += '\n>Additional National Fuel Account Number 3 is required to have values that are numeric.  The first part is 7 digits long.';
            }
            else
            {
                userForm.elements['AdditionalNationalFuelAccountNumber3'].value = userForm.elements['AdditionalNationalFuelAccountNumber3A'].value + '-' + userForm.elements['AdditionalNationalFuelAccountNumber3B'].value;
            }
        //}
            //RG & E Gas
            if ((userForm.elements['RGEGasPodIDB'].value.length > 0) && (userForm.elements['RGEGasPodIDB'].value.length != 12))
            {
                bIsValid = false;
                sMessage += '\n>RG & E Gas Pod ID must begin with "R02" and is 15 characters long.';
            }
            else
            {
                userForm.elements['RGEGasPodID'].value = userForm.elements['RGEGasPodIDA'].value + '-' + userForm.elements['RGEGasPodIDB'].value;
            }
            if ((userForm.elements['AdditionalRGEGasPodID1B'].value.length > 0) && (userForm.elements['AdditionalRGEGasPodID1B'].value.length != 12))
            {
                bIsValid = false;
                sMessage += '\n>Additional RG & E Gas Pod ID 1 must begin with "R02" and is 15 characters long.';
            }
            else
            {
                userForm.elements['AdditionalRGEGasPodID1'].value = userForm.elements['AdditionalRGEGasPodID1A'].value + '-' + userForm.elements['AdditionalRGEGasPodID1B'].value;
            }
            if ((userForm.elements['AdditionalRGEGasPodID2B'].value.length > 0) && (userForm.elements['AdditionalRGEGasPodID2B'].value.length != 12))
            {
                bIsValid = false;
                sMessage += '\n>Additional RG & E Gas Pod ID 2 must begin with "R02" and is 15 characters long.';
            }
            else
            {
                userForm.elements['AdditionalRGEGasPodID2'].value = userForm.elements['AdditionalRGEGasPodID2A'].value + '-' + userForm.elements['AdditionalRGEGasPodID2B'].value;
            }
            if ((userForm.elements['AdditionalRGEGasPodID3B'].value.length > 0) && (userForm.elements['AdditionalRGEGasPodID3B'].value.length != 12))
            {
                bIsValid = false;
                sMessage += '\n>Additional RG & E Gas Pod ID 3 must begin with "R02" and is 15 characters long.';
            }
            else
            {
                userForm.elements['AdditionalRGEGasPodID3'].value = userForm.elements['AdditionalRGEGasPodID3A'].value + '-' + userForm.elements['AdditionalRGEGasPodID3B'].value;
            }


        if (sMessage.length > 0)
        {
            var sPrefix = '***************************************************************************\n';
            sPrefix += 'There are some problems with the values you entered in the form.  ';
            sPrefix += 'Please correct the errors listed below and re-submit the form.\n\n';
            sPrefix += '***************************************************************************\n\n\n';
            sMessage = sPrefix + sMessage;
            alert(sMessage);
        }

        return bIsValid;
        }
        catch (err)
        {
            var errMessage = 'An error occurred:\n\n';
            errMessage += err.message;
            
            alert(err.message);
            return false;
        }
    }
}
function TestPROD1(userForm)
{
    userForm.action = 'http://24.75.24.147/mailer/referrertest.aspx?R=1';
}
function ServiceToBillPerson(userInputForm)
{
    var userForm = userInputForm;
    try
    {
        if (userForm != null)
        {
            if (userForm.elements['chkCopyAddress'].checked)
            {
                //alert('Billing Address same as Service Address.')
                if (userForm.elements['ServiceAddress'].value.length > 0)
                {
                    userForm.elements['BillingAddress'].value = userForm.elements['ServiceAddress'].value
                }
                /*if (userForm.elements['txtSvcAddress2'].value.length > 0)
                {
                    userForm.elements['txtBillAddress2'].value = userForm.elements['txtSvcAddress2'].value
                }*/
                if (userForm.elements['ServiceCity'].value.length > 0)
                {
                    userForm.elements['BillingCity'].value = userForm.elements['ServiceCity'].value
                }
                
                if (userForm.elements['ServiceState'].value.length > 0)
                {
                    for(i=0;i<userForm.elements['BillingState'].length;i++)
                    {
                        if(userForm.elements['BillingState'].options[i].value==userForm.elements['ServiceState'].value)
                        {
                            userForm.elements['BillingState'].selectedIndex=i
                            break;
                        }
                    }
                }
                
                if (userForm.elements['ServiceZip'].value.length > 0)
                {
                    userForm.elements['BillingZip'].value = userForm.elements['ServiceZip'].value
                }
                if (userForm.elements['ServicePhone'].value.length > 0)
                {
                    userForm.elements['BillingPhone'].value = userForm.elements['ServicePhone'].value
                }
                
            }
        }
        return false;
    }
    catch (err)
    {
       alert(err.message);
       return false;
    }
}