/* Sphinx Box  */
/*
* jQuery Sphinx Box Plugin 
* v0.0.1
*
* Author: Sphinxly AB
* Copyright 2011 Sphinxly AB. All Rights Reserved
* 
*/
		
(function ($) {

    $.fn.sphinxBox = function (options) {
        var defaults = {
            borderRadius: "0px",
            boxShadow: "none",
            width: 0,
            url: "",
            close: function () {
                //$.fn.sphinxBox.close
                alert("close");
            }
        };

        var options = $.extend(defaults, options);


        $sphinxBoxLink = $(this);
        var url = options.url;
        if (url.length > 0) {


            //Få innehållet i body att ligga still och maxa höjden
            $('body, html').addClass('sphinxBoxActive');

            // Fix for firefox scroll
            var ua = $.browser;
            if (ua.mozilla && ($(document).height() > $(window).height()))
                $('body, html').addClass('sphinxBoxActiveFF');

            var marginTop = $(window).scrollTop(); // Eventuell scroll


            $('#sphinxBox', $overlay).css({
                '-moz-border-radius': options.borderRadius,
                '-webkit-border-radius': options.borderRadius,
                '-o-border-radius': options.borderRadius,
                'border-radius': options.borderRadius,
                '-moz-box-shadow': options.boxShadow,
                '-webkit-box-shadow': options.boxShadow,
                '-o-box-shadow': options.boxShadow,
                'box-shadow': options.boxShadow
            });

            //Maxa bredden på overlay delen
            $('#sphinxBoxOverlay').css({ 'width': '100%', 'height': '100%', 'margin-top': marginTop }).show(); /*.fadeIn();*/

            $('#sphinxBox').addClass('load');

            //FAKE AJAX
            //FAKE DELAY
            $('#sphinxBoxContent').load(url, function () {
                $('#sphinxBox').removeClass('load');

                //Kolla bredden på innehållet i sphinxBoxContent, här bör vi även räkna med padding och margins
                var sphinxBoxWidth = options.width + "px";
                if (sphinxBoxWidth == "0px")
                    sphinxBoxWidth = $('#sphinxBoxContent').children().css('width');

                //var sphinxBoxHeight = $('.sphinxBoxContent').children().css('height');

                $('#sphinxBox').css({ 'height': 'auto' }).css({ 'width': sphinxBoxWidth
                });

            });

            //Hindra sphinxBox från att stängas om man klickar inuti rutan
            $('#sphinxBoxContent').live('click', function (event) {
                event.stopPropagation();
            });
        }
    }
    function clearContainer(Container_ID) {
        var containerNode = document.getElementById(Container_ID);
        if (containerNode != null) {
            while (containerNode.hasChildNodes()) {
                containerNode.removeChild(containerNode.lastChild);
            }
        }
    }

    function closeBox() {
        $('body, html').removeClass('sphinxBoxActive');
        $('#sphinxBoxOverlay').hide();
        $('#sphinxBox').attr('style', '');

        // Fix for firefox scroll
        var ua = $.browser;
        if (ua.mozilla)
            $('body, html').removeClass('sphinxBoxActiveFF');


        clearContainer("sphinxBoxContent");
    }

    $.fn.sphinxBox.close = function (options) {
        $('body, html').removeClass('sphinxBoxActive');
        $('#sphinxBoxOverlay').hide();
        $('#sphinxBox').attr('style', '');

        // Fix for firefox scroll
        var ua = $.browser;
        if (ua.mozilla)
            $('body, html').removeClass('sphinxBoxActiveFF');


        clearContainer("sphinxBoxContent");
    };

    var $overlay;
    $.fn.sphinxBox.init = function (options) {
        var $overlay = $('<div id="sphinxBoxOverlay"><div id="sphinxBoxBg"></div><div id="sphinxBox"><a href="#" id="sphinxBoxClose"></a><div id="sphinxBoxContent"></div></div></div>');

        $('a#sphinxBoxClose', $overlay).bind("click", function (e) {
            e.preventDefault();
            closeBox();
        });
        $overlay.bind("click", function (e) {
            e.preventDefault();
            closeBox();
        });
        $('#sphinxBoxContent', $overlay).bind('click', function (event) {
            event.stopPropagation();
        });

        $('body').append($overlay);
    };
})(jQuery);
