/**
 * @version : 1.1
 * @changelog : Added support for IE
 */
(function($){
    if($.browser.msie && $.livequery){
        $.fn.live = $.fn.livequery;
    }
    var wdbox = function(options){
        var self = this;
        this.defaults = {
            window_title : "<a class = 'closeLink'>x</a>",
            default_callbackFunc : false
        };
        this.settings = $.extend(options, this.defaults);
        //alert(this.settings.window_title);
        this.createContent = function(content_body, options){
            if(!content_body){
                content_body = "";
            }
            this.settings = $.extend(options, this.settings);
            //alert(this.settings.window_title);
            this.contents = {
                window_title : "",
                content_title : "",
                content_body : content_body,
                window_interaction : ""
            };

            this.contents = $.extend(this.contents, this.settings);
                //alert(this.contents.window_title);
        };
        this.createMarkup = function(content_body, options){
            if(!content_body){
                content_body = false;
            }
            this.createContent(content_body, options);
            this.markup = {
                fader : "<div class='fader'></div>",
                box : "<div class = 'wdbox'><div class = 'wdbox_window_title'>"+this.contents.window_title+"</div><div class = 'wdbox_content'><div class = 'wdbox_content_title'>"+this.contents.content_title+"</div><div class = 'wdbox_content_body'>"+this.contents.content_body+"</div><div class = 'wdbox_interaction'>"+this.contents.window_interaction+"</div></div></div>"
            };
        };
        this.createMarkup();
        this.open = false;
        this.old_content_body = false;
        this.content_body = '';
        this.showPreviousContent = function(){
            this.alert(this.old_content_body);
        }
        this.centerBox = function(options){
            var left = $(document).width() / 2 - ($('.wdbox').width() / 2);
            var settings = {left : left};
            if(options.top){
                if(options.top == 'center'){

                }
                options.top = $(document).scrollTop()+options.top;
            }
            settings = $.extend(options, settings);
            $(".wdbox").css(settings);
        };
        this.alert = function (content_body, callbackFunc){
            if(content_body){
                this.old_content_body = this.content_body;
                this.content_body = content_body;
            }
            if(!this.open){
                this.createMarkup(this.content_body);
                $('body').append(this.markup.fader+this.markup.box).find('.wdbox_content_body').html(this.content_body);
                var left = $(document).width() / 2 - ($('.wdbox').width() / 2);
                var top = 100;
                var top = $(document).scrollTop()+top;
                $('.wdbox').css({
                    left : left,
                    top : top
                });
                $(".fader").css({
                    height : $(document).height()
                });

                $('.closeLink, .fader').live('click', function(){
                    if(self.closeAnimation){
                        self.closeAnimation();
                    }else{
                        $(".wdbox, .fader").remove();
                    }

                    self.open = false;
                });
                this.showAnimation();
            }else{
                $(".wdbox_content_body").html(this.content_body);
            }
            $(".wdbox_interaction_back").live('click', function(){
                self.showPreviousContent();
                return false;
            });
            var windowtitle = $(".wdbox_content_body .window-title");
            if(windowtitle.html()){
                windowtitle.prependTo(".wdbox_window_title");
            }
            if(callbackFunc){
                callbackFunc();
            }else if(this.settings.default_callbackFunc){
                this.settings.default_callbackFunc();
            }
            this.open = true;

        };
        this.showAnimation = function(){
            var faderOpacity = $(".fader").css('opacity');
            if(faderOpacity >= 1){
                faderOpacity = 0.5;
            }
            $(".fader, .wdbox").css("opacity", 0);
            $(".fader").animate({
                opacity : faderOpacity
            }, 600);
            $(".wdbox").animate({
                opacity : 1
            }, 1000);
        };
        this.closeAnimation = function(){
            $(".fader, .wdbox").animate({
                opacity : 0
            }, 800, function(){
                $(this).remove();
            });
        };
        //se uso new non serve il return
        return this;
    };

    $.wdbox = new wdbox();

    $.fn.urlInBox = function(){
        this.live('click', function(){
            var url = $(this).attr('href');
            $.post(url, function(res){
                $.wdbox.alert(res);
            });
            return false;
        });
        return this;
    };
    $.fn.resInBox = function(){
        this.live('submit',function(){
            var data = $(this).serialize();
            var url = $(this).attr("action");
            var method = $(this).attr('method');
            if($.wdbox.open){

                $.wdbox.content_body = $(".wdbox_content_body").html();
            //alert($.wdbox.content_body);
            }
            if(method.toLowerCase() == 'get'){
                $.get(url, data, function(res){
                    $.wdbox.alert(res);
                });
            }else{
                $.post(url, data, function(res){
                    $.wdbox.alert(res);
                });
            }
            return false;
        });
        return this;
    };
})(jQuery);