/**
 * Inititialize Contact form
 *
 * @result  void
 *
 * @access  public
 */
function activateContact()
{
    if ($('contactform')) {
        $('contactform').onsubmit = function() {
            return false;
        };
    }

    if ($('submit_contact')) {
        $('submit_contact').onclick = function() {
             sendContactForm();
        };
    }
}



/**
 * Sends contact form request via ajax.
 *
 * @result  void
 *
 * @access  public
 */
function sendContactForm()
{
    if ( checkForm() ) {
        var f = $('contactform');
        var params = Form.serialize(f);
        var a = { 'function': 'contact' };
        var h = $H(a);

        var params = params + '&' + h.toQueryString();

        // get response
    	var myAjax = new Ajax.Request(
    	       url, {method: 'get', parameters: params,
    	       onComplete: showConfirmation,
    	       onFailure: function(req) {alert(req.responseText)},
    	       onException: function(t,e) {alert(e);}
        } );
    }
    else {
        return false;
    }
}



/**
 * Function checks the validity of the input fields
 *
 * @result  boolean
 *
 * @access  public
 */
function checkForm()
{
    var email_normal = /^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})$/;

    if ( $F('name') == "" ) {
        $('name').value = language['error_name'];
        $('name').style.color = "#d00";

        return false;
    }

    if ( $F('email') == "" || !email_normal.test($F('email')) ) {
        $('email').value = language['error_email'];
        $('email').style.color = "#d00";

        return false;
    }

    if ( $F('comment') == "" ){
        $('comment').innerHTML = language['error_comment'];
        $('comment').style.color = "#d00";

        return false;
    }

    return true;
}



/**
 * clears input field if error message is inside
 * onClick Event on input fields
 *
 * @param   object      element
 *
 * @return  void
 *
 * @access  public
 */
function clearInput(element)
{
    if (element.value == language['error_' + element.name]) {
        if ( element.type == 'textarea' ){
            element.innerHTML = '';
        }
        else {
            element.value = '';
        }

        element.style.color = '#666';
    }
}



/**
 * show confirmation
 *
 * @param   mixed       originalRequest
 * @param   mixed       json
 */
function showConfirmation(originalRequest, json)
{
    if (json) {
        if( $('content_text') ) {
            $('content_text').parentNode.removeChild($('content_text'));
        }

        if( $('contactform') ) {
            $('contactform').parentNode.removeChild($('contactform'));
        }


        var parent  = $('content_elements');
        var content = appendNode(parent, 'div', 'content_text');

        if ( json.send ) {
            var status = appendNode(content, 'p', false, language['confirm_contact']);
            Element.addClassName(status, 'dc_title');
        }
        else {
            var status = appendNode(content, 'p', false, language['error_contact']);
            Element.addClassName(status, 'dc_title');
        }
    }
}


Event.observe(window, 'load', activateContact);