/* $Id */

$(function() {
    // Flash header
    if ($('div.header-flash').length > 0) {
        $('div.header-flash').flash({
            src:                '_assets/flash/header.swf',
            width:              920,
            height:             280,
            wmode:              'transparent'
        });
    }

    // Form buttons
    $('.form-button').mouseover(function() {
        $(this).css({'background-position':'0 -21px'});
    }).mouseout(function() {
        $(this).css({'background-position':'0 0'});
    });

    // Contacts form processing
    $('#frm-contact').submit(function() {
        var reqFields = new Array('name', 'email', 'body', 'c');
        var formError = false;
        var errorMsg = '';
        var firstErrorField = '';

        $('#contact-msgbox').remove();
        clearErrorFields(reqFields);

        for (var i = 0; i < reqFields.length; i++) {
            var field = reqFields[i];

            if ($('#' + field).val() == '') {
                formError = true;
                errorMsg = 'Please complete all required fields';

                if (firstErrorField == '') {
                    firstErrorField = field;
                }

                $('#' + field).after('<img src="../_images/icons/bullet_error.png" alt="" class="error-field-icon" /><span class="error-field-msg" title="This field is required">required</span>');
                $('#' + field).addClass('error-field');
            }
        }

        if (formError) {
            $('#' + firstErrorField).focus();
        }

        return !formError;
    });

    // Client login form processing
    $('#frm-client-login').submit(function() {
        var reqFields = new Array('username', 'passwd');
        var formError = false;
        var errorMsg = '';
        var firstErrorField = '';

        clearErrorFields(reqFields);

        for (var i = 0; i < reqFields.length; i++) {
            var field = reqFields[i];

            if ($('#' + field).val() == '') {
                formError = true;
                errorMsg = 'Please complete all fields';

                if (firstErrorField == '') {
                    firstErrorField = field;
                }

                $('#' + field).after('<img src="../_images/icons/bullet_error.png" alt="" class="error-field-icon" /><span class="error-field-msg" title="This field is required">required</span>');
                $('#' + field).addClass('error-field');
            }
        }

        if (formError) {
            $('#' + firstErrorField).focus();
        }

        return !formError;
    });

    // Portfolio colourbox
    $('a.portfolio-img-link').each(function() {
        addColourBox($(this));
    });
});

function clearErrorFields(fields) {
    $('.error-field-icon').remove();
    $('.error-field-msg').remove();

    for (var i = 0; i < fields.length; i++) {
        $('#' + fields[i]).removeClass('error-field');
    }
}

function addColourBox(obj) {
    var parentContainer = $(obj).parent().parent().parent().attr('class');
    var pTitle = $('div.' + parentContainer + ' div h2').html();

    $(obj).colorbox({
        transition:         'fade',
        title:              pTitle
    });
}