var FeedbackAgent = {
    loggedIn: true,
    userID: -1,
    closeButton: null, 

    ShowFeedbackAgent: function(_userID) {   
        FeedbackAgent.userID = _userID ? _userID : -1;
        if (FeedbackAgent.userID < 0)
            FeedbackAgent.loggedIn = false;
           
        // Show the agent
        var pageHeight = ((document.height) ? document.height : document.body.offsetHeight) + 20;
        var pageWidth = ((document.width) ? document.width : document.body.offsetWidth) + 20;
        
        if (document.documentElement.clientHeight > pageHeight) 
            pageHeight = document.documentElement.clientHeight;
	    
	    var curtain = document.createElement("div");
        curtain.style.display = "block";
        curtain.style.position = "absolute";
        curtain.style.top = "0px";
        curtain.style.left = "0px";
        curtain.style.backgroundColor = "#000000";
	    curtain.style.opacity = 0.8;
	    curtain.style.filter  = "alpha(opacity=80)";
        curtain.style.height = Math.ceil(pageHeight) + "px";
        curtain.style.width = Math.ceil(pageWidth) + "px";
        curtain.style.margin = "0px auto";
        curtain.style.zIndex = 1999;
	    curtain.appendChild(document.createTextNode(" "));
	    
	    Get("ElementDropBox").appendChild(curtain);
	    
	    var wrapper = document.createElement("div");
	    wrapper.className = "Dialog";
	    wrapper.style.width = "350px";
	    wrapper.style.height = "350px";
	    
	    FeedbackAgent.PositionFeedbackAgent(wrapper);
	    var positionInterval = setInterval(function() { FeedbackAgent.PositionFeedbackAgent(wrapper); }, 500);
	    
	    var header = document.createElement("h1");
	    header.appendChild(document.createTextNode("Your Feedback About This Page"));
	    
	    var table = document.createElement("table");
	    var row, col1, col2, input1, input2, input3, input4;
	    
	    table.cellspacing = 0;
	    table.cellpadding = 4;
	    
	    row = table.insertRow(table.rows.length);
	    cell1 = row.insertCell(row.cells.length);
	    cell2 = row.insertCell(row.cells.length);
	    
	    input1 = document.createElement("input");
	    input1.type = "text";
	    input1.id = "FeedbackName";
	    input1.style.width = "200px";
	    input1.maxlength = 64;
	    input1.tabindex = 1;
	    cell1.appendChild(document.createTextNode("Name: "));
	    cell2.appendChild(input1);
	    
	    input2 = document.createElement("input");
	    input2.type = "text";
	    input2.id = "FeedbackEmail";
	    input2.style.width = "200px";
	    input2.maxlength = 64;
	    input2.tabindex = 2;
	    
	    if (!FeedbackAgent.loggedIn) { // don't show the e-mail field if logged in, but do create it so we'll have it when we read the form
	        row = table.insertRow(table.rows.length);
	        cell1 = row.insertCell(row.cells.length);
	        cell2 = row.insertCell(row.cells.length);
	        cell1.appendChild(document.createTextNode("E-mail: "));
	        cell2.appendChild(input2);
	    }
	    
	    row = table.insertRow(table.rows.length);
	    cell1 = row.insertCell(row.cells.length);
	    cell2 = row.insertCell(row.cells.length);
	    
	    input3 = document.createElement("textarea");
	    input3.id = "FeedbackComments";
	    input3.style.width = "250px";
	    input3.style.height = "200px";
	    input3.tabindex = 3;
	    cell1.appendChild(document.createTextNode("Comments: "));
	    cell1.style.verticalAlign = "top";
	    cell1.style.padding = "4px 0 0 0";
	    cell2.appendChild(input3);
	    
	    row = table.insertRow(table.rows.length);
	    cell1 = row.insertCell(row.cells.length);
	    cell2 = row.insertCell(row.cells.length);
	    cell1.style.padding = "5px 0 5px 0";
	    
	    input4 = document.createElement("input");
	    input4.type = "button";
	    input4.id = "FeedbackSubmit";
	    input4.value = "Send Feedback";
	    input4.tabindex = 4;
	    input4.className = "Button";
	    input4.onclick = function() { FeedbackAgent.SubmitFeedback(input1.value, input2.value, input3.value, wrapper, curtain, positionInterval); return false; };
	    cell2.appendChild(input4);
	    
	    FeedbackAgent.closeButton = document.createElement("a");
	    FeedbackAgent.closeButton.href = "#";
	    FeedbackAgent.closeButton.onclick = function() { FeedbackAgent.HideFeedbackAgent(wrapper, curtain, positionInterval); return false; };
	    FeedbackAgent.closeButton.style.display = "block";
	    FeedbackAgent.closeButton.style.margin = "-5px -15px 0 0";
        if (typeof(FeedbackAgent.closeButton.style.cssFloat) != "undefined") FeedbackAgent.closeButton.style.cssFloat = "right";
        else FeedbackAgent.closeButton.style.styleFloat = "right";
	    var img = document.createElement("img");
	    img.src = "/images/layout2009/curtain_close.gif";
	    img.width = 26;
	    img.height = 26;
	    img.alt = "Close";
        FeedbackAgent.closeButton.appendChild(img);
	    
	    wrapper.appendChild(FeedbackAgent.closeButton);
	    wrapper.appendChild(header);
	    wrapper.appendChild(table);
	    Get("ElementDropBox").appendChild(wrapper);
    },
    
    PositionFeedbackAgent: function(wrapper) { 
	    wrapper.style.top = GetScreenCenteredY(390) + "px";
	    wrapper.style.left = GetScreenCenteredX(390) + "px";
    }, 

    HideFeedbackAgent: function(wrapper, curtain, positionInterval) {
        clearInterval(positionInterval);
        Get("ElementDropBox").removeChild(wrapper);
        Get("ElementDropBox").removeChild(curtain);
    },

    SubmitFeedback: function(name, email, comments, wrapper, curtain, positionInterval) {
        ClearChildNodes(wrapper);
        
        var header = document.createElement("h1");
        header.appendChild(document.createTextNode("Now Sending Your Feedback..."));
        
        var loadingContainer = document.createElement("div");
        loadingContainer.style.textAlign = "center";
        loadingContainer.style.padding = "40px 0";
        var loading = document.createElement("img");
        loading.src = "/images/ajax-loader.gif";
        loading.width = 32;
        loading.height = 32;
        loading.alt = "Loading...";
        loadingContainer.appendChild(loading);
        
        wrapper.appendChild(header);
        wrapper.appendChild(loadingContainer);
    
        var feedbackURL = "/feedback/ajaxsubmit.aspx?";
        feedbackURL += "userid=" + escape(FeedbackAgent.userID);
        feedbackURL += "&name=" + escape(name);
        feedbackURL += "&email=" + escape(email);
        feedbackURL += "&comments=" + escape(comments);
        feedbackURL += "&page=" + escape(document.location.href);
        
        var msg = new Pliner.Util.Ajax.Message(feedbackURL, 0);
        msg.AddOnCompletedEvent(function(msg) { FeedbackAgent.FeedbackSubmitted(wrapper, curtain, positionInterval); });
        ajaxConnection.AddToQueue(msg);
    },

    FeedbackSubmitted: function(wrapper, curtain, positionInterval) {
        ClearChildNodes(wrapper);
        
        var header = document.createElement("h1");
        header.appendChild(document.createTextNode("Your Feedback Has Been Sent"));
        
        wrapper.appendChild(FeedbackAgent.closeButton);
        wrapper.appendChild(header);
        
        wrapper.appendChild(document.createTextNode("Thank you for helping us to improve ezLandlordForms.com."));
        wrapper.appendChild(document.createElement("br"));
        wrapper.appendChild(document.createElement("br"));
        
        var close = document.createElement("a");
        close.href = "#";
        close.onclick = function() { FeedbackAgent.HideFeedbackAgent(wrapper, curtain, positionInterval); return false; }
        close.appendChild(document.createTextNode("Close the Feedback Window"));
        wrapper.appendChild(close);
    }
};