var wrapper_span;
var object_tag;

function wrapper_init()
{
    wrapper_span = document.getElementById("wrapper_span");
    var a = document.createElement("a");
    addEvent(a, "click", wrapper_link_click);
    a.appendChild(document.createTextNode("See what it's like: print a sample wrapper!"));
    wrapper_span.appendChild(a);
}

function wrapper_link_click()
{
    var div = document.getElementById("wrapper_div");
    if(!div)
    {
        div = document.createElement("div");
        document.getElementsByTagName("body")[0].appendChild(div);
        div.setAttribute("id", "wrapper_div");
        div.className = "livedemo";
    }
    else
    { removeChildren(div); }

    div.style.top = findPosY(wrapper_span)+30+"px";
    div.style.left = "250px";
    var h1 = document.createElement("h1");
    h1.appendChild(document.createTextNode("Print Wrapper"));
    div.appendChild(h1);
    div.appendChild(document.createElement("hr"));
    var form = document.createElement("form");
    form.setAttribute("method", "POST");
    form.setAttribute("action", "#Sample");
    div.appendChild(form);
    var hidden = document.createElement("input");
    hidden.setAttribute("type", "hidden");
    hidden.setAttribute("name", "print");
    hidden.setAttribute("value", 1);
    form.appendChild(hidden);
    var table = document.createElement("table");
    var tbody = document.createElement("tbody");
    table.appendChild(tbody);
    var name_input = document.createElement("input");
    name_input.setAttribute("id", "name_input");
    name_input.setAttribute("name", "name");
/*    var title_input = document.createElement("input");
    title_input.setAttribute("id", "title_input");*/
    populate_row(
        tbody,
        document.createTextNode("Your last name:"),
        name_input
      );
/*    populate_row(
        tbody,
        document.createTextNode("A book title:"),
        title_input
      );*/
    form.appendChild(table);
    var p = document.createElement("p");
    var submit_button = make_button("Print!");
    addEvent(submit_button, "click", form.submit);
    var cancel_button = make_button("Close");
    cancel_button.setAttribute("name", "cancel");
    addEvent(cancel_button, "click", close_div);
    p.appendChild(submit_button);
    p.appendChild(document.createTextNode(" "));
    p.appendChild(cancel_button);
    form.appendChild(p);
    var p2 = document.createElement("p");
    p2.appendChild(document.createTextNode("Requires Adobe Reader 9 or greater."));
    form.appendChild(p2);
    name_input.focus();
}

function do_print()
{
    var object_div = document.getElementById("object_div");
    removeChildren(object_div);

    object_tag = document.createElement("object");
/*    object_tag.setAttribute("type", "text/html");
    object_tag.setAttribute("data", "wrapper.pl");*/
    object_tag.setAttribute("type", "application/pdf");
    object_tag.setAttribute("data", "wrapper.pl?last_name="+document.getElementById("name_input").value);
    object_div.appendChild(object_tag);
}

function close_div()
{
    var div = document.getElementById("wrapper_div");
    if(div)
    { div.parentNode.removeChild(div); }
    return false;
}

function addEvent(obj, evType, fn)
{
    if (obj.addEventListener)
    { obj.addEventListener(evType, fn, false); }
    else
    { obj.setAttribute("on"+evType, fn); }
}

function removeChildren(object)
{
    if(object)
    {
        while(object.firstChild)
        { object.removeChild(object.firstChild); }
    }
}

function findPosY(obj)
{
    var curtop = 0;
    if(obj.offsetParent)
    {
        while(1)
        {
            curtop += obj.offsetTop;
            if(!obj.offsetParent)
            { break; }
            obj = obj.offsetParent;
        }
    }
    else if(obj.y)
    { curtop += obj.y; }
    return curtop;
}

function populate_row(table)
{
    var row = document.createElement("tr");
    table.appendChild(row);
    for(var i=1; i<arguments.length; ++i)
    {
        if(arguments[i])
        {
            var cell = document.createElement("td");
            row.appendChild(cell);
            cell.appendChild(arguments[i]);
        }
    }
    return row;
}

function make_button(text)
{
    if(!text)
    { text = "Edit"; }

    var button = document.createElement("button");
    button.appendChild(document.createTextNode(text));
    return button;
}
