76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassYUI.add('widget-base-ie', function(Y) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass/**
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * IE specific support for the widget-base module.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass *
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @module widget-base-ie
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass */
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glassvar BOUNDING_BOX = "boundingBox",
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass CONTENT_BOX = "contentBox",
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass HEIGHT = "height",
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass OFFSET_HEIGHT = "offsetHeight",
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass EMPTY_STR = "",
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass IE = Y.UA.ie,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass heightReallyMinHeight = IE < 7,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass bbTempExpanding = Y.Widget.getClassName("tmp", "forcesize"),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass contentExpanded = Y.Widget.getClassName("content", "expanded");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass// TODO: Ideally we want to re-use the base _uiSizeCB impl
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassY.Widget.prototype._uiSizeCB = function(expand) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var bb = this.get(BOUNDING_BOX),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass cb = this.get(CONTENT_BOX),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass borderBoxSupported = this._bbs;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
d87f9ede8fbce7ad8dc96cf5c1ce2ac6dc8c3b7fSatyen Desai if (borderBoxSupported === undefined) {
d87f9ede8fbce7ad8dc96cf5c1ce2ac6dc8c3b7fSatyen Desai this._bbs = borderBoxSupported = !(IE && IE < 8 && bb.get("ownerDocument").get("compatMode") != "BackCompat");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (borderBoxSupported) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass cb.toggleClass(contentExpanded, expand);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass } else {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (expand) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (heightReallyMinHeight) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass bb.addClass(bbTempExpanding);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass cb.set(OFFSET_HEIGHT, bb.get(OFFSET_HEIGHT));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (heightReallyMinHeight) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass bb.removeClass(bbTempExpanding);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass } else {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass cb.setStyle(HEIGHT, EMPTY_STR);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass};
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass}, '@VERSION@' ,{requires:['widget-base']});