if (!dojo._hasResource["dojox.layout.ContentPane"]) { // _hasResource checks
// added by build. Do
// not use _hasResource
// directly in your
// code.
dojo._hasResource["dojox.layout.ContentPane"] = true;
dojo.provide("dojox.layout.ContentPane");
dojo.require("dijit.layout.ContentPane");
(function() { // private scope, sort of a namespace
// TODO: should these methods be moved to dojox.html.cssPathAdjust or
// something?
// css at-rules must be set before any css declarations according to CSS
// spec
// match:
// @import 'http://dojotoolkit.org/dojo.css';
// @import 'you/never/thought/' print;
// @import url("it/would/work") tv, screen;
// @import url(/did/you/now.css);
// but not:
// @namespace dojo "http://dojotoolkit.org/dojo.css"; /* namespace URL
// should always be a absolute URI */
// @charset 'utf-8';
// @media print{ #menuRoot {display:none;} }
// we adjust all paths that dont start on '/' or contains ':'
// (?![a-z]+:|\/)
if (dojo.isIE) {
var alphaImageLoader = /(AlphaImageLoader\([^)]*?src=(['"]))(?![a-z]+:|\/)([^\r\n;}]+?)(\2[^)]*\)\s*[;}]?)/g;
}
var cssPaths = /(?:(?:@import\s*(['"])(?![a-z]+:|\/)([^\r\n;{]+?)\1)|url\(\s*(['"]?)(?![a-z]+:|\/)([^\r\n;]+?)\3\s*\))([a-z, \s]*[;}]?)/g;
function adjustCssPaths(cssUrl, cssText) {
// summary:
// adjusts relative paths in cssText to be relative to cssUrl
// a path is considered relative if it doesn't start with '/' and
// not contains ':'
// description:
// Say we fetch a HTML page from level1/page.html
// It has some inline CSS:
// @import "css/page.css" tv, screen;
// ...
// background-image: url(images/aplhaimage.png);
//
// as we fetched this HTML and therefore this CSS
// from level1/page.html, these paths needs to be adjusted to:
// @import 'level1/css/page.css' tv, screen;
// ...
// background-image: url(level1/images/alphaimage.png);
//
// In IE it will also adjust relative paths in AlphaImageLoader()
// filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/alphaimage.png');
// will be adjusted to:
// filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='level1/images/alphaimage.png');
//
// Please note that any relative paths in AlphaImageLoader in
// external css files wont work, as
// the paths in AlphaImageLoader is MUST be declared relative to the
// HTML page,
// not relative to the CSS file that declares it
if (!cssText || !cssUrl) {
return;
}
// support the ImageAlphaFilter if it exists, most people use it in
// IE 6 for transparent PNGs
// We are NOT going to kill it in IE 7 just because the PNGs work
// there. Somebody might have
// other uses for it.
// If user want to disable css filter in IE6 he/she should
// unset filter in a declaration that just IE 6 doesn't understands
// like * > .myselector { filter:none; }
if (alphaImageLoader) {
cssText = cssText.replace(alphaImageLoader, function(ignore,
pre, delim, url, post) {
return pre
+ (new dojo._Url(cssUrl, './' + url)
.toString()) + post;
});
}
return cssText.replace(cssPaths, function(ignore, delimStr, strUrl,
delimUrl, urlUrl, media) {
if (strUrl) {
return '@import "'
+ (new dojo._Url(cssUrl, './' + strUrl)
.toString()) + '"' + media;
} else {
return 'url('
+ (new dojo._Url(cssUrl, './' + urlUrl)
.toString()) + ')' + media;
}
});
}
// attributepaths one tag can have multiple paths, example:
// or
//
var htmlAttrPaths = /(<[a-z][a-z0-9]*\s[^>]*)(?:(href|src)=(['"]?)([^>]*?)\3|style=(['"]?)([^>]*?)\5)([^>]*>)/gi;
function adjustHtmlPaths(htmlUrl, cont) {
var url = htmlUrl || "./";
return cont.replace(htmlAttrPaths, function(tag, start, name,
delim, relUrl, delim2, cssText, end) {
return start
+ (name
? (name
+ '='
+ delim
+ (new dojo._Url(url, relUrl)
.toString()) + delim)
: ('style=' + delim2
+ adjustCssPaths(url, cssText) + delim2))
+ end;
});
}
function secureForInnerHtml(cont) {
/** ******* remove .. tag ********* */
// khtml is picky about dom faults, you can't attach a