function search_validator(txt){
    if (txt.value == '') {
        alert("Please enter search text.");
        txt.focus();
        return false;
    }
    return true;
}
function email_validator(email){
        // Email Checker
//            alert(email.value);
    if (email.value == 0) {
//        alert("Please enter email address.");
        $('status_invite_friends').innerHTML = '<p style="color: #ff0000; font-weight: bold;">Please enter email address.<\/p>'
        $('status_invite_friends').show();
        email.focus();
        return false;
    } else if (!email.value.match(".+@.+\\..+")) {
//        alert("Incorrect email address. Please re-enter");
        $('status_invite_friends').innerHTML = '<p style="color: #ff0000; font-weight: bold;">Incorrect email address. Please re-enter.<\/p>'
        $('status_invite_friends').show();
        email.focus();
        return false;
    }
    return true;
}

function name_validator(user_name){
    // Name Checker
    if (user_name.value == '') {
//        alert("Please enter your name.");
        $('status_invite_friends').innerHTML = '<p style="color: #ff0000; font-weight: bold;">Please enter your name.<\/p>'
        $('status_invite_friends').show();
        user_name.focus();
        return false;
    }
    return true;
}

function inviteFriend(friend_email, user_email, user_name){

    var url = web_base + '/user/invite/';
    var params = 'friend_email=' + friend_email + '&user_email=' + user_email + '&user_name=' + user_name;

    $('menu_invite_friends').hide();
    $('status_invite_friends').innerHTML = '<p><img src="../images/loading.gif" /> Sending invitation...<\/p>';;
    $('status_invite_friends').show();

    var success = function(t){inviteComplete(t);}
    var failure = function(t){inviteFailed(t);}

    myAjax = new Ajax.Request(url, {method:'post', postBody:params, onSuccess:success, onFailure:failure});
}

function inviteComplete(t)
{
    r = myAjax.evalJSON();
    if (r){
        switch (r[0]){
            case 'ok':
                $('status_invite_friends').innerHTML = '<p>Your invitation was sent successfully.<\/p> <a href="#" onClick="$(\'status_invite_friends\').hide(); $(\'menu_invite_friends\').show(); return false;">Send another invitation<\/a>';
                $('friend_email_sb').value = '';
                break;
            case 'error':
//                $('status_invite_friends').hide();
                $('menu_invite_friends').show();
                msg = 'qwerty';
                if (undefined != r[1].friend_email){ msg = '\n' + r[1].friend_email + '\n'; }
                if (undefined != r[1].user_email){ msg = msg + '\n' + r[1].user_email + '\n';}
                if (undefined != r[1].user_name) {msg = msg + '\n' + r[1].user_name;}
//                alert('Error.\n' + msg);
                $('status_invite_friends').innerHTML = '<p style="color: #ff0000; font-weight: bold;">'+ msg +'<\/p>'
                break;
        }
    }
    else{
        //alert('Sorry, the invitation is failed.');
        $('status_invite_friends').innerHTML = '<b>Invitation error.<\/b>';
    }
}


function inviteFailed(t){
//    alert('Sorry, the invitation is failed.');
    $('status_invite_friends').innerHTML = '<b>Invitation error.<\/b>';
}


function submit_form(){
    if (ask_userdata){
        document.getElementById('expanded_inviteform').style.display = 'block';
        ask_userdata = 0;
        form_expanded = 1;
        return false;
    }else{
//            alert('no ask');
    }

    var friend_email = document.getElementById('friend_email_sb');
    var user_email = document.getElementById('user_email_sb');
    var user_name = document.getElementById('user_name_sb');

    if (!email_validator(friend_email)) return false;

    if (form_expanded && !name_validator(user_name)) return false;

    if (form_expanded && !email_validator(user_email)) return false;

    // AJAX request

    inviteFriend(friend_email.value, user_email.value, user_name.value);

    return true;
}