window.addEvent('domready', function(){
    var sl_email = new Fx.Slide('email_block');
    sl_email.hide();

    var sl_address = new Fx.Slide('address_block');
    sl_address.hide();

    $('inputError').setStyle('opacity', 0);
    $('inputError').setStyle('display', 'none');

    var sl_tollfree = new Fx.Slide('tollfree_block');
    sl_tollfree.hide();

    $('email').addEvent('click', function(e){
        e = new Event(e);
        sl_email.toggle();
        e.stop();
    });

    $('address').addEvent('click', function(e){
        e = new Event(e);
        sl_address.toggle();
        e.stop();
    });

    $('tollfree').addEvent('click', function(e){
        e = new Event(e);
        sl_tollfree.toggle();
        e.stop();
    });

    $('contactForm').addEvent('submit', function(e){
        new Event(e).stop();
        if(!validateForm()){
            return;
        }

        $('sendButton').disabled = true;
        new Fx.Style('contactForm', 'opacity', {duration:500}).start(1, 0.1);
        var res = $('email_block').addClass('ajax-loading');
        this.send({
            update: res,
            onComplete: function(){
                res.removeClass('ajax-loading');
            }
        });
    });
});

function showHideError(show)
{
    nstart = show ? 0 : 1;

    $('inputError').setStyle('opacity', nstart);
    if(show){
        $('inputError').setStyle('display', 'block');
    }
    new Fx.Style('inputError', 'opacity', {duration:777}).start(nstart, nstart + 1 * (show ? 1 : -1)).addEvent('onComplete', function(){
        if(!show){
            $('inputError').setStyle('display', 'none');
        }
    });
}  //  showHideError

function displayError(fieldId, str)
{
    $('inputError').innerHTML = str;
    showHideError(true);

    $(fieldId).focus();
    return false;
}  //  displayError

function validateForm()
{
    if($('firstName').value == ''){ return displayError('firstName', 'Please supply your first name'); }
    if($('lastName').value == ''){ return displayError('lastName', 'Please supply your last name'); }
    if($('comment').value == ''){ return displayError('comment', 'Please enter your comment'); }
    if($('emailAddress').value == ''){ return displayError('emailAddress', 'Please enter your email address'); }
    if(!validateEmail($('emailAddress').value)){ return displayError('emailAddress', 'Please supply a valid email address'); }
    if($('emailAddress').value != $('emailConfirmation').value){ return displayError('emailConfirmation', 'Email address and its confirmation must be the same'); }

    showHideError(false);
    return true;
}  //  validateForm

function validateEmail(str)
{
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(str)) {
        return false;
    }
    return true;
}   //  validateEmail