YAHOO.namespace("avro.cultuur.mailafriend");

YAHOO.avro.cultuur.mailafriend = function() {
    var Event = YAHOO.util.Event;   
    var Dom = YAHOO.util.Dom;

    var updateGetMailaFriendCallback = {
        success: function(obj) {
            var placeholder = Dom.get("mailAFriendPlaceHolder");
            placeholder.innerHTML = obj.responseText;
            Dom.setStyle(placeholder, "display", "block");
            initForm();
        },
        failure: function(obj) {
            
        }
    }

    var mailafriendPostCallback = {
        success: function(obj) {
            var placeholder = Dom.get("mailAFriendPlaceHolder");
            placeholder.innerHTML = obj.responseText;
            initForm();
        },
        failure: function(obj) {

        }
    }

    var postForm = function(event) {
        YAHOO.util.Event.preventDefault(event);
        var form = document.forms["mailafriendform"];
        
        var button = Dom.get("mailafriendSubmitButton");
        button.disabled = true;

        var postTo = form.action;
        YAHOO.util.Connect.setForm(form);
        
        var c = YAHOO.util.Connect.asyncRequest('POST', postTo, mailafriendPostCallback);
    }

    function showForm(event) {
        YAHOO.util.Event.preventDefault(event);
        YAHOO.util.Connect.asyncRequest('GET', 'actions/mailafriend', updateGetMailaFriendCallback);
    }

    function initForm() {
        var form = document.forms["mailafriendform"];
        if (form) {
            Event.addListener(form, "submit", postForm);
            form.elements["artikellink"].value = document.location.href;
            form.elements["portal"].value = /detail(.*)\.html/.exec(document.location.href)[1];
        }
    }

    return {
        init: function() {
            YAHOO.util.Event.addListener("linkMailAFriend", "click", showForm);
        }
    }
}();

YAHOO.util.Event.onDOMReady(YAHOO.avro.cultuur.mailafriend.init);
