function form_validator()
{
      
    if (document.getElementById('hasFormSubmitted').value != '') {

        var prevPost = new Date(document.getElementById('hasFormSubmitted').value);
        prevPost.setSeconds(prevPost.getSeconds() + 3);
        var currentTime = new Date();
        if (prevPost < currentTime) {
            // -- blank out the formsubmitted because user went back and forth and hidden values still cached
            document.getElementById('hasFormSubmitted').value = '';
        }
    }

    var empty_fields=new Array();
    var empty_field_num=new Array();
    var empty_count=0;
    var str='field indicated Cant be empty:';
    
    for (i=0;i<required_fields.length;i++) {
        var field_ref=document.getElementById(required_fields[i]);

        if ((required_fields[i] == 'cc_number' || required_fields[i] == 'cc_expires' ||  required_fields[i] == 'cc_cvv') && document.getElementById('cc_type').value == 'checking')
        {
            continue;
        }

        if (required_fields[i] == 'cc_number')
        {
            if (document.getElementById('cc_number')!=undefined)
            {
                if (document.getElementById('cc_number').value.length<13)
                {
                    alert('Invalid credit card number');
                    return;
                }
            }
        }

        if (required_fields[i] == 'fields_state2')
        {
            var funcName = 'SetCountryValue2';
            if (typeof funcName == 'string' && eval('typeof ' + funcName) == 'function') {
               eval(funcName+'()');
            }
        }

        if (required_fields[i] == 'fields_state2' || required_fields[i] == 'fields_state') {
            if (validateMilitary(required_fields[i],'fields_city') == false)
            {
               alert('All military states must have a city of either "APO", "FPO", or "DPO".  Please adjust your city.');
               return;
            }
        }


        //catch all spaces, this is invalid
        var tempStr = field_ref.value.ltrim();

        if ((tempStr =='') || (tempStr == ' '))
        {
            empty_fields[empty_count]=required_fields_label[i];
            empty_field_num[empty_count]=i;
            empty_count++;
        }
        if((field_ref.length==0)||(field_ref.value==null) || (field_ref.value==''))
        {
            empty_fields[empty_count]=required_fields_label[i];
            empty_field_num[empty_count]=i;
            empty_count++;
        }
    }

    if (document.getElementById('cc_type'))
    {
        if (document.getElementById('cc_type').value == 'checking')
        {
            // -- checking account validation
            field_ref = document.getElementById('routing_number');
            if((field_ref.length==0)||(field_ref.value==null) || (field_ref.value==''))
            {
               alert('Please Enter Your Routing Number');
               field_ref.focus();
               return;
            }
            field_ref = document.getElementById('account_number');
            if((field_ref.length==0)||(field_ref.value==null) || (field_ref.value==''))
            {
               alert('Please Enter Your Account Number');
               field_ref.focus();
               return;
            }
        }
    }

    for(x in empty_fields)
    {
     str=str+'<br/>'+empty_fields[x];
     if(empty_fields[x] != undefined )
     {
        alert('Please Enter Your ' + empty_fields[x] + '');
        document.getElementById(required_fields[empty_field_num[x]]).focus();
     }
     else
     {
        alert('Please Fill in all fields');
     }
     return;
    }

    var tm_check = document.getElementById('checkAgree');
    if(tm_check && tm_check.checked==false)
    {
     alert('Please agree that you will be billed monthly');
     return;
    }
    if (document.getElementById('radioTwo')!=undefined)
    {
     var radio2Obj = document.getElementById('radioTwo');
     if (radio2Obj.checked)
     {
        field_ref = document.getElementById('billing_street_address');
        if((field_ref.length==0)||(field_ref.value==null) || (field_ref.value=='') || (field_ref.value.ltrim() == '') )
        {
           alert("Please enter your Billing Address");
           return;
        }
        field_ref = document.getElementById('billing_city');
        if((field_ref.length==0)||(field_ref.value==null) || (field_ref.value=='') || (field_ref.value.ltrim() == ''))
        {
           alert("Please enter your Billing City");
           return;
        }
        var state_select_is_visible = (ll('#billing_state').is(':visible') == true);
        field_ref = document.getElementById('billing_state');
        if (state_select_is_visible)
        {
           if((field_ref.length==0)||(field_ref.value==null) || (field_ref.value=='') || (field_ref.value.ltrim() == ''))
           {
              alert("Please enter your Billing State");
              return;
           }

           if (validateMilitary('billing_state','billing_city') == false)
           {
              alert('All military states must have a city of either "APO", "FPO", or "DPO".  Please adjust your billing city.');
              return;
           }
        }
        var region_is_visible = (ll('#billing_state2').is(':visible') == true);
        field_ref = document.getElementById('billing_state2');
        if (region_is_visible)
        {
           if((field_ref.length==0)||(field_ref.value==null) || (field_ref.value=='') || (field_ref.value.ltrim() == ''))
           {
              alert("Please enter your Billing State");
              return;
           }
           else
           {
              //store the international region value
              ll(new Option(ll('#billing_state2').val(), ll('#billing_state2').val())).appendTo('#billing_state').attr('selected', 'selected');
           }
        }

        field_ref = document.getElementById('billing_postcode');
        if((field_ref.length==0)||(field_ref.value==null) || (field_ref.value=='') || (field_ref.value.ltrim() == ''))
        {
           alert("Please enter your Billing Zip");
           return;
        }
        if (document.getElementById('billing_country')!=undefined){
           field_ref = document.getElementById('billing_country');
           if((field_ref.length==0)||(field_ref.value==null) || (field_ref.value=='') || (field_ref.value.ltrim() == '')){
              alert("Please chooose your Billing Country");
              return;
           }
        }

     }
    }
    if(empty_count!=0)
    {
     var diverr=document.getElementById('err');
     diverr.innerHTML='';
     diverr.innerHTML=str;
    }
    else
    {
     if (ll('#fields_email').is(':visible') == true)
     {
        var emailCheck = isValidEmail(document.forms['opt_in_form'].fields_email.value);
     }
     else
     {
        var emailCheck = true;
     }
     if(emailCheck)
     {
        if (document.getElementById['state_cus2']!=undefined)
        {
           if ((document.getElementById['state_cus2'].style.display == 'inline') && (document.forms['opt_in_form'].fields_state2.value.length<2))
           {
              alert('Please specify the state');
              return;
           }
           else
           {
              if (document.getElementById('hasFormSubmitted').value == '')
              {
                 var d=new Date();
                 document.getElementById('hasFormSubmitted').value = d.toUTCString();
                 document.opt_in_form.submit();
              }
           }
        }
        else
        {
           if (document.getElementById('hasFormSubmitted').value == '')
           {
              var d=new Date();
              document.getElementById('hasFormSubmitted').value = d.toUTCString();
              document.opt_in_form.submit();
           }
        }
     }
    }
}

/*
(function($) {
        
    $(document).ready(function() {
        if ($(".content .left-panel") && $(".content .right-panel")) {
            if ($(".content .left-panel").height() < $(".content .right-panel").height())
                $(".content .left-panel").height($(".content .right-panel").height());
        }
        
    });

})(jQuery);
*/
