
/* Using prototype.js for contact us validation and submittal */
/* See Prototype web site: http://www.prototypejs.org/        */

Event.observe(window, 'load', function()
{
    resetForm1Messages();
    resetForm2Messages();
});

function submitForm1()
{
    resetForm1Messages();

    var test1 = checkRequiredField('txtEmailAddress', 'form1Email'   );
    var test2 = checkRequiredField('txtPostalCode'  , 'form1Zipcode' );
    var test3 = checkRequiredField('txtPhoneNumber' , 'form1Phone'   );
    var test4 = checkRequiredField('txtDescription' , 'form1Comments');
    var test5 = checkEmail        ('txtEmailAddress', 'form1Email'   );

    if (test1 && test2 && test3 && test4 && test5)
    {
    	Effect.Appear('form1WaitingMessage');

        new Ajax.Request('submitAskUs.jsp',
        {
        	method     : 'post',
        	parameters : $('Form1').serialize(true),
        	onSuccess  : function(transport) { $('form1ThankYouMessage'   ).show(); $('form1WaitingMessage').hide(); pageTracker._trackPageview('contact-us-submit-success.html'); },
        	onFailure  : function(         ) { $('form1SubmitErrorMessage').show(); $('form1WaitingMessage').hide(); }
        });

        //----- Prevent normal form submit
        return false;
    }
    else
    {
        //----- Validation failed
        Effect.Appear('form1ValidateMessage');
        return false;
    }
}

/*
function submitForm2()
{
    resetForm2Messages();

    var test1 = checkRadioGroup('Services'    , 'form2Services'    );
    var test2 = checkRadioGroup('Navigation'  , 'form2Navigation'  );
    var test3 = checkRadioGroup('Information' , 'form2Information' );
    var test4 = checkRadioGroup('AskUs'       , 'form2AskUs'       );
    var test5 = checkRadioGroup('Look'        , 'form2Look'        );
    var test6 = checkRadioGroup('Site'        , 'form2Site'        );
    var test7 = checkRadioGroup('UsedProducts', 'form2UsedProducts');
    var test8 = true;

    if (!isEmpty('txtEmail'))
    {
        test8 = checkEmail('txtEmail', 'form2Email');
    }

    if (test1 && test2 && test3 && test4 && test5 && test6 && test7 && test8)
    {
        Effect.Appear('form2WaitingMessage');

        //----- Validation passed, so submit form via AJAX
        new Ajax.Request('submitFeedback.jsp',
        {
        	method     : 'post',
        	parameters : $('Form2').serialize(true),
        	onSuccess  : function(transport) { $('form2ThankYouMessage'   ).show(); $('form2WaitingMessage').hide(); },
        	onFailure  : function(         ) { $('form2SubmitErrorMessage').show(); $('form2WaitingMessage').hide(); }
        });

        //----- Prevent normal form submit
        return false;
    }
    else
    {
        //----- Validation failed
        Effect.Appear('form2ValidateMessage');
        return false;
    }
}
*/

function checkRadioGroup(groupName, target)
{
    var value = $('Form2').serialize().toQueryParams()[groupName];

    if (value == undefined)
    {
        $(target).addClassName('highlightField');
        return false;
    }
    else
    {
        $(target).removeClassName('highlightField');
        return true;
    }
}

function checkEmail(field, target)
{
    var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if ($(field).value.match(emailRegEx))
    {
        $(target).removeClassName('highlightField');
        return true;
    }
    else
    {
        $(target).addClassName('highlightField');
        return false;
    }
}

function checkRequiredField(field, target)
{
    if (isEmpty(field))
    {
        $(target).addClassName('highlightField');
        return false;
    }
    else
    {
        $(target).removeClassName('highlightField');
        return true;
    }
}

function isEmpty(id)
{
    return $(id).value.length == 0;
}

function resetForm1Messages()
{
    $('form1WaitingMessage'    ).hide();
    $('form1ValidateMessage'   ).hide();
    $('form1ThankYouMessage'   ).hide();
    $('form1SubmitErrorMessage').hide();
    
    $('form1Email'   ).removeClassName('highlightField');
    $('form1Phone'   ).removeClassName('highlightField');
    $('form1Zipcode' ).removeClassName('highlightField');
    $('form1Comments').removeClassName('highlightField');
}

function resetForm2Messages()
{
    $('form2WaitingMessage'    ).hide();
    $('form2ValidateMessage'   ).hide();
    $('form2ThankYouMessage'   ).hide();
    $('form2SubmitErrorMessage').hide();
    
    $('form2Look'        ).removeClassName('highlightField');
    $('form2Site'        ).removeClassName('highlightField');
    $('form2Email'       ).removeClassName('highlightField');
    $('form2AskUs'       ).removeClassName('highlightField');
    $('form2Services'    ).removeClassName('highlightField');
    $('form2Navigation'  ).removeClassName('highlightField');
    $('form2Information' ).removeClassName('highlightField');
    $('form2UsedProducts').removeClassName('highlightField');
}
