lorem_ipsum = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.";


preview_hover_show = false;

function preview_mouseover() {
    var e = getElementsByTagAndClassName('div', 'ecard_hover')[0];
    showElement(e);
    preview_hover_show = true;
}

function preview_mouseout() {
    var e = getElementsByTagAndClassName('div', 'ecard_hover')[0];
    hideElement(e);
    preview_hover_show = false;
}

function preview(target, style, url, title, tagline, description, image) {
    /* Generate a preview of the ecard by replacing the target with the correct HTML */

    log("Generating image with image", image);

    if (style=='image') {
        if (image) {
            var ecard = A({'id': target, 'class': 'entrecard_only ecard_' + style, 'href': url, 'target': '_new'},
                IMG({'src': image}))
        } else {
            var ecard = A({'id': target, 'class': 'entrecard_only ecard_' + style, 'href': url, 'target': '_new'},
                IMG({'src': '/static/images/placeholder.jpg'}))
            }
    } else {
        var ecard = A({'id': target, 'class': 'entrecard_only ecard_' + style, 'href': url, 'target': '_new'},
            DIV({'class': 'title'}, title),
            DIV({'class': 'tagline'}, tagline))
    }

    /*
    connect(ecard, 'onmouseover', preview_mouseover);
    connect(ecard, 'onmouseout', preview_mouseout);
    */
    swapDOM(target, ecard);

}

function preview_from_form() {
    /* Pull the values for the preview from a form element 'root' */
    var target = 'preview';
    var formdata = formContents();

    /* Set defaults */
    var defaults = {
        'style': 'default',
        'url': '#',
        'title': 'Title',
        'tagline': 'Your tagline here',
        'description': lorem_ipsum,
        'image': ''
    };

    var form = {};

    for (var i=0; i<formdata[0].length; i++) {
        if (defaults[formdata[0][i]]) {
            if (formdata[1][i]) {
                form[formdata[0][i]] = formdata[1][i];
            } else {
                form[formdata[0][i]] = defaults[formdata[0][i]];
            }
        }
    }

    log(form['image']);

    return preview(target, form['style'], form['url'], form['title'], form['tagline'], form['description'], form['image']);
}

function setup_preview(target) {
    /* Sets up realtime preview operations */
    forEach(
        getElementsByTagAndClassName('*', 'preview_form_field'),
        function (e) {
            connect(e, 'onchange', preview_from_form);
            connect(e, 'onkeyup', preview_from_form);
        }
    );
    
    if (document.getElementById('settings_style')) {
        prefix = "settings";
    } else {
        prefix = "signup";
    }
    e = document.getElementById(prefix + '_style');
    connect(e, 'onchange', function (event) {
            i = document.getElementById(prefix + '_image');
            if (e[1].selected) {
                i.disabled = false;
                i.parentNode.style.display = "block";
            } else {
                i.disabled = true;
                i.parentNode.style.display = "none";
            }
            preview_from_form();
        });

    forEach(
        getElementsByTagAndClassName('*', 'preview_form_field_hover'),
        function (e) {
            /*
            connect(e, 'onfocus', preview_mouseover);
            connect(e, 'onblur', preview_mouseout);
            */
        }
    );
    
    e = document.getElementById(prefix + '_style');
    i = document.getElementById(prefix + '_image');
    if (e[1].selected) {
        i.disabled = false;
        i.parentNode.style.display = "block";
    } else {
        i.disabled = true;
        i.parentNode.style.display = "none";
    }
    preview_from_form(target);
}
