﻿
(function(JQuery$) {
    JQuery$.fn.expandingElement = function(options) {
        var defaults = {
            contractText: "Contract",
            expandText: "Expand",
            height: 150
        };

        var options = JQuery$.extend(defaults, options);


        return this.each(function() {
            var obj = JQuery$(this);


            var parent = JQuery$(obj.parent().get(0));
            obj.before("<span class='expandContainer' style='overflow:hidden'></span>");
            var container = JQuery$(parent.children(".expandContainer").get(0));

            obj.appendTo(container);

            obj.css("display", "block");

            obj.css("overflow-y", "hidden");


            var link = JQuery$("<div style='clear:both'><a id='expandLink' class='expandLink' href='#'>" + options.expandText + "</a></div>");
            link.appendTo(container);
            var originalHeight = container.height();


            link.click(function() {
                var time = originalHeight / options.height * 400;

                if (obj.height() == options.height) {
                    obj.animate({
                        "height": originalHeight
                    }, time, "linear", function() {
                        obj.css("overflow-y", "visible");
                        obj.css("display", "block");
                    });
                    JQuery$('#expandLink').text(options.contractText);
                    //link.val(options.contractText);                        
                }
                else {
                    obj.animate({
                        "height": options.height
                    }, time, "linear", function() {
                        obj.css("overflow-y", "hidden");
                        obj.css("display", "block");
                    });
                    JQuery$('#expandLink').text(options.expandText);
                    //link.val(options.expandText);                                            
                }
                return false;

            });
            obj.height(options.height);
            //link.click();

        }); //this.each



    } //function
})(jQuery);


