//>>builtdefine(["dojo","dijit","dojox","dojo/require!dojox/lang/observable"],function(h,z,k){h.provide("dojox.secure.DOM");h.require("dojox.lang.observable");k.secure.DOM=function(e){functionf(a){if(a){if(a.nodeType){varb=t(a);1==a.nodeType&&"function"==typeofb.style&&(b.style=x(a.style),b.ownerDocument=m,b.childNodes={__get__:function(b){returnf(a.childNodes[b])},length:0});returnb}if(a&&"object"==typeofa){if(a.__observable)returna.__observable;b=ainstanceofArray?[]:{};a.__observable=b;for(vardina)"__observable"!=d&&(b[d]=f(a[d]));b.data__=a;returnb}if("function"==typeofa){varc=function(a){return"function"==typeofa?function(){for(varb=0;b<arguments.length;b++)arguments[b]=f(arguments[b]);returnc(a.apply(f(this),arguments))}:k.secure.unwrap(a)};returnfunction(){a.safetyCheck&&a.safetyCheck.apply(c(this),arguments);for(varb=0;b<arguments.length;b++)arguments[b]=c(arguments[b]);returnf(a.apply(c(this),arguments))}}}returna}functionl(a){a+="";if(a.match(/behavior:|content:|javascript:|binding|expression|\@import/))throwError("Illegal CSS");varb=e.id||(e.id="safe"+(""+Math.random()).substring(2));returna.replace(/(\}|^)\s*([^\{]*\{)/g,function(a,c,f){returnc+" #"+b+" "+f})}functionu(a){if(a.match(/:/)&&!a.match(/^(http|ftp|mailto)/))throwError("Unsafe URL "+a);}functionp(a){if(a&&1==a.nodeType){if(a.tagName.match(/script/i)){varb=a.src;b&&""!=b?(a.parentNode.removeChild(a),h.xhrGet({url:b,secure:!0}).addCallback(function(a){m.evaluate(a)})):(b=a.innerHTML,a.parentNode.removeChild(a),f.evaluate(b))}if(a.tagName.match(/link/i))throwError("illegal tag");if(a.tagName.match(/style/i)){vard=function(b){a.styleSheet?a.styleSheet.cssText=b:(b=n.createTextNode(b),a.childNodes[0]?a.replaceChild(b,a.childNodes[0]):a.appendChild(b))};(b=a.src)&&""!=b&&(alert("src"+b),a.src=null,h.xhrGet({url:b,secure:!0}).addCallback(function(a){d(l(a))}));d(l(a.innerHTML))}a.style&&l(a.style.cssText);a.href&&u(a.href);a.src&&u(a.src);for(varc,b=0;c=a.attributes[b++];)if("on"==c.name.substring(0,2)&&"null"!=c.value&&""!=c.value)throwError("event handlers not allowed in the HTML, they must be set with element.addEventListener");c=a.childNodes;for(varb=0,e=c.length;b<e;b++)p(c[b])}}functionq(a){varb=document.createElement("div");if(a.match(/<object/i))throwError("The object tag is not allowed");b.innerHTML=a;p(b);returnb}functionr(a,b){returnfunction(d,c){p(c[b]);returnd[a](c[0])}}functionv(a){returnk.lang.makeObservable(function(a,d){returna[d]},a,function(a,d,c,e){for(varb=0;b<e.length;b++)e[b]=unwrap(e[b]);returng[c]?f(g[c].call(a,d,e)):f(d[c].apply(d,e))},g)}unwrap=k.secure.unwrap;varn=e.ownerDocument,m={getElementById:function(a){a:if(a=n.getElementById(a)){varb=a;doif(b==e){a=f(a);breaka}while(b=b.parentNode);a=null}returna},createElement:function(a){returnf(n.createElement(a))},createTextNode:function(a){returnf(n.createTextNode(a))},write:function(a){for(a=q(a);a.childNodes.length;)e.appendChild(a.childNodes[0])}};m.open=m.close=function(){};varw={innerHTML:function(a,b){console.log("setting innerHTML");a.innerHTML=q(b).innerHTML},outerHTML:function(a,b){throwError("Can not set this property");}},g={appendChild:r("appendChild",0),insertBefore:r("insertBefore",0),replaceChild:r("replaceChild",1),cloneNode:function(a,b){returna.cloneNode(b[0])},addEventListener:function(a,b){h.connect(a,"on"+b[0],this,function(a){a=t(a||window.event);b[1].call(this,a)})}};g.childNodes=g.style=g.ownerDocument=function(){};vart=v(function(a,b,d){if(w[b])w[b](a,d);a[b]=d}),y={behavior:1,MozBinding:1},x=v(function(a,b,d){y[b]||(a[b]=l(d))});f.safeHTML=q;f.safeCSS=l;returnf};k.secure.unwrap=function(e){returne&&e.data__||e}});