Object.extend(Prototype,
{
scriptPath:
$$('script').find(
function (s) {
return (s.src && /prototype.*js$/i.test(s.src))
}
).src.replace(/prototype.*js$/i,''),
includeJS: function (file) {
var elScript = Element.create('script',{
type:'text/javascript',
src:file
});
var myPromise = (function () {$$('head')[0].appendChild(this);}).bind(elScript);
Prototype.Promise(
'$$("head").length>=1',
(function () {
$$('head')[0].appendChild(this);
}).bind(elScript)
);
},
includeCSS: function (file) {
var elLink = Element.create('link',{
type:'text/css',
rel:'stylesheet',
href:file
});
Prototype.Promise(
'$$("head").length>=1',
(function () {
$$('head')[0].appendChild(this);
}).bind(elLink)
);
},
Promise: function (condition,action,interval) {
if (typeof interval=='undefined') interval=1;
//Promise to do this now, or whenever (condition) is met
if (eval(condition))
action();
else
new PeriodicalExecuter(
function (pe) {
Prototype.Promise.bind(pe,condition,action,interval)();
},
2
);
if (this.stop) this.stop();
}
}
);