/**
 * Inititialize Contact form
 *
 * @result  void
 *
 * @access  public
 */
function activateRegister()
{   
    if ($('registerform')) {                    
        $('registerform').onsubmit = function() {                 
            return false; 
        };        
    }    
    
    
    if ($('submit_register')) {          
        $('submit_register').onclick = function() {                         
             sendRegisterForm();
        };        
    }
}


/**
 * Sends register form request via ajax.
 *
 * @result  void
 *
 * @access  public
 */
function sendRegisterForm()
{
    
    if (checkForm()) {        
        var f = $('registerform');
        var params = Form.serialize(f);
        var a = { 'function': 'register' };
        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 reg_email = /^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$/;
    var reg_url = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
    
    if ( $F('repository_name') == "" ) {
        $('repository_name').value = language['error_repository_name'];   
        $('repository_name').style.color = "#d00";
        
        return false;
    }
    
    if ( $F('repository_url') == "" || !reg_url.test($F('repository_url')) ) {
        $('repository_url').value = language['error_repository_url'];   
        $('repository_url').style.color = "#d00";
        
        return false;
    }
    
    if ( $F('contact_name') == "" ) {
        $('contact_name').value = language['error_contact_name'];   
        $('contact_name').style.color = "#d00";
        
        return false;
    }
    
    if ( $F('contact_email') == "" || !reg_email.test($F('contact_email')) ) {
        $('contact_email').value = language['error_contact_email'];   
        $('contact_email').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]) {
        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( $('registerform') ) {
            $('registerform').parentNode.removeChild($('registerform'));
        }

        
        var parent  = $('content_elements');
        var content = appendNode(parent, 'div', 'content_text');
        
        if ( json.send ) {
            var status = appendNode(content, 'p', false, language['confirm_register']);
            Element.addClassName(status, 'dc_title');
        }
        else {
            var status = appendNode(content, 'p', false, language['error_register']);
            Element.addClassName(status, 'dc_title');
        }
    }       
}


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