﻿(function($){
    $(function(){
        $(".dialog-wrapper").each(function(i, wrapper){
            var $wrapper = $(wrapper),
                $trigger = $wrapper.find(".dialog-trigger"),
                $dialog = $wrapper.find(".dialog").hide().remove().appendTo(document.body),
                $star = $(".rate").starRating(5);
                
            $wrapper.css({position:"relative"});
            $("<span />").html("&times;").addClass("close").bind("click", function(){
                    if (pageTracker) pageTracker._trackEvent("Site Feedback", "Form closed w/o Send", window.location.href);
                    hide();
                }).appendTo( $dialog.find(".dialog-title") );
                
            var hide = function(){
                $dialog.hide();
                $trigger.removeClass("open");
            };
            var show = function(){
                if (pageTracker) { pageTracker._trackEvent("Site Feedback", "Form Opened", window.location.href); }
                $dialog
                    .css({width:250, overflow:"auto", zIndex:101})
                    .css({
                        position:"absolute", top:$trigger.offset().top - $dialog.height(), left:$trigger.offset().left
                    })
                    .show("slide", {direction:"down"}, 250);
                $trigger.addClass("open");
            };
            
            var sendFeedback = function(){
                var feedback = {
                    page : $dialog.find("input[name=Request_Url]").val(),
                    name : $dialog.find("input[name=Fdbk_Name]").val(),
                    email : $dialog.find("input[name=Fdbk_Email]").val(),
                    pageStars : $star.starRating().get(),
                    comments : $dialog.find("textarea").val()
                };
                
                $.ajax({
                    url: "/Feedback.asmx/GiveFeedback",
                    data: $.jsonSerialize(feedback)
                    });
                
                if (pageTracker) pageTracker._trackEvent("Site Feedback", "Form Sent", window.location.href, feedback.pageStars);
                hide();
            }
            
            var toggle = function(){
                ($dialog.is(":visible")) ? hide() : show();
            }
            
            $dialog.find("input[name=Fdbk_Send]").bind("click", function() { sendFeedback(); });
            $trigger.bind("click", function(){ toggle(); return false; });
        });
    });
})(jQuery)