rem: document.defaultView.getComputedStyle( elem, null ).getPropertyValue( name ) || ""; 
add: ( getComputedStyle && getComputedStyle.getPropertyValue( name ) ) || ""; 
context: 	curCSS: function( elem, name, force ) {		var ret;		// A helper method for determining if an element's values are broken		function color( elem ) {			if ( !jQuery.browser.safari )				return false;			var ret = document.defaultView.getComputedStyle( elem, null );			return !ret || ret.getPropertyValue("color") == "";		}		// We need to handle opacity special in IE		if ( name == "opacity" && jQuery.browser.msie ) {			ret = jQuery.attr( elem.style, "opacity" );			return ret == "" ?				"1" :				ret;		}				// Make sure we're using the right name for getting the float value		if ( name.match( /float/i ) )			name = styleFloat;		if ( !force && elem.style[ name ] )			ret = elem.style[ name ];		else if ( document.defaultView && document.defaultView.getComputedStyle ) {			// Only "float" is needed here			if ( name.match( /float/i ) )				name = "float";			name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();			var getComputedStyle = document.defaultView.getComputedStyle( elem, null );			if ( getComputedStyle && !color( elem ) )				ret = getComputedStyle.getPropertyValue( name );			// If the element isn't reporting its values properly in Safari			// then some display: none elements are involved			else {				var swap = [], stack = [];				// Locate all of the parent display: none elements				for ( var a = elem; a && color(a); a = a.parentNode )					stack.unshift(a);				// Go through and make them visible, but in reverse				// (It would be better if we knew the exact display type that they had)				for ( var i = 0; i < stack.length; i++ )					if ( color( stack[ i ] ) ) {						swap[ i ] = stack[ i ].style.display;						stack[ i ].style.display = "block";					}				// Since we flip the display style, we have to handle that				// one special, otherwise get the value				ret = name == "display" && swap[ stack.length - 1 ] != null ?					"none" :					document.defaultView.getComputedStyle( elem, null ).getPropertyValue( name ) || "";				// Finally, revert the display styles back				for ( var i = 0; i < swap.length; i++ )					if ( swap[ i ] != null )						stack[ i ].style.display = swap[ i ];			}			// We should always get a number back from opacity			if ( name == "opacity" && ret == "" )				ret = "1";		} else if ( elem.currentStyle ) {			var camelCase = name.replace(/\-(\w)/g, function(all, letter){				return letter.toUpperCase();			});			ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];			// From the awesome hack by Dean Edwards			// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291			// If we're not dealing with a regular pixel number			// but a number that has a weird ending, we need to convert it to pixels			if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {				// Remember the original values				var style = elem.style.left, runtimeStyle = elem.runtimeStyle.left;				// Put in the new values to get a computed value out				elem.runtimeStyle.left = elem.currentStyle.left;				elem.style.left = ret || 0;				ret = elem.style.pixelLeft + "px";				// Revert the changed values				elem.style.left = style;				elem.runtimeStyle.left = runtimeStyle;			}		}		return ret;	},
meta: 1375	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/1375/0f5c1d15e974fdc44f4f2182e07d4ed6f9a37707/core.js/clean/src/core.js